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='https://www.haobala.com/wenda/${rc.contextPath}/css/bootstrap.css' rel='stylesheet' type='text/css'/> <!-- font Awesome --> <link href='https://www.haobala.com/wenda/${rc.contextPath}/css/font-awesome.min.css' rel='stylesheet' type='text/css'/> <!-- Ionicons --> <link href='https://www.haobala.com/wenda/${rc.contextPath}/css/ionicons.min.css' rel='stylesheet' type='text/css'/> <!-- Theme style --> <link href='https://www.haobala.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. 主从备份 - 跪求mysql 高可用主从方案2. python - django 里自定义的 login 方法,如何使用 login_required()3. python如何不改动文件的情况下修改文件的 修改日期4. android-studio - Android 动态壁纸LayoutParams问题5. javascript - git clone 下来的项目 想在本地运行 npm run install 报错6. angular.js - 不适用其他构建工具,怎么搭建angular1项目7. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?8. mysql优化 - mysql count(id)查询速度如何优化?9. node.js - 使用 superagent 抓取 UTF-8网站乱码10. sql语句如何按or排序取出记录
