java-ee - nginx反向代理tomcat時資源文件處理問題
問題描述
nginx上配置如下48 location ^~ /bgmonitor/ { 50 proxy_pass http://localhost:8080/; 51 }
形如www.mr.org/bgmonitor的請求轉發到本地8080端口的tomcat
tomcat配置如下<Context docBase='/Users/mr/Documents/code_pool/bgmonitor-git/bgmonitor-web/target/bgmonitor' path='' reloadable='true'/>頁面渲染使用velocity,資源文件引用路徑為:
<!-- bootstrap 3.0.2 --> <link href='http://www.gepszalag.com/wenda/${rc.contextPath}/css/bootstrap.css' rel='stylesheet' type='text/css'/> <!-- font Awesome --> <link href='http://www.gepszalag.com/wenda/${rc.contextPath}/css/font-awesome.min.css' rel='stylesheet' type='text/css'/> <!-- Ionicons --> <link href='http://www.gepszalag.com/wenda/${rc.contextPath}/css/ionicons.min.css' rel='stylesheet' type='text/css'/> <!-- Theme style --> <link href='http://www.gepszalag.com/wenda/${rc.contextPath}/css/AdminLTE.css' rel='stylesheet' type='text/css'/>現象
訪問時由于${rc.contextPath}取出為空,導致整個資源路徑變為/css/AdminLTE.css ,這個請求發到nginx后就沒法正常轉發啦
問怎么做才能在最小修改的情況下讓整個應用正常?
問題解答
回答1:靜態文件不需要轉發,在 nginx 本機上部署靜態文件,比如
location ~* ^/(?:images/|js/|css/) { root /home/app/htdocs;}
具體如何配置參考文檔
回答2:詳見博客:http://blog.iaceob.name/nginx-proxy/以及http://blog.iaceob.name/tomcat-multi-domain-binding/
便是我使用的解決方案, 只是我個人這么使用而已, 暫未發現有別人這么使用過.
相關文章:
1. docker內創建jenkins訪問另一個容器下的服務器問題2. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. javascript - js閉包作用域5. 極光推送 - Android app消息推送 百度 極光 個推 信鴿哪個好一些?6. html5 - 百度echart官網下載的地圖json數據亂碼7. css3 - 學習css構建圖形時,遇到一個很有意思的現象,具體代碼如下8. html - css 使用字體的時候,格式有什么特殊要求嗎?9. 微信開放平臺 - android 微信支付后點完成按鈕,后回調打開第三方頁面,屏幕閃動,求解決方法10. javascript - echart+百度地圖
