java-ee - nginx反向代理tomcat時資源檔案處理問題
迷茫
迷茫 2017-05-16 17:23:08
0
2
566

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="${rc.contextPath}/css/bootstrap.css" rel="stylesheet" type="text/css"/>
    <!-- font Awesome -->
    <link href="${rc.contextPath}/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
    <!-- Ionicons -->
    <link href="${rc.contextPath}/css/ionicons.min.css" rel="stylesheet" type="text/css"/>
    <!-- Theme style -->
    <link href="${rc.contextPath}/css/AdminLTE.css" rel="stylesheet" type="text/css"/>

現象

訪問時由於${rc.contextPath}取出為空,導致整個資源路徑變為/css/AdminLTE.css ,這個請求發到nginx後就沒法正常轉發啦

怎麼做才能在最小修改的情況下讓整個應用程式正常?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
我想大声告诉你

靜態文件不需要轉發,在 nginx 本機上部署靜態文件,例如

location ~* ^/(?:images/|js/|css/) {
    root /home/app/htdocs;
}

具體如何配置參考文件

巴扎黑

詳見部落格:
http://blog.iaceob.name/nginx-proxy/
以及
http://blog.iaceob.name/tomcat-multi-domain-binding/

便是我使用的解決方案, 只是我個人這麼使用而已, 暫未發現有別人這麼使用過.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!