server.xml默认配置为
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
如果webapps中存在多个项目,比如ProA,ProB.此场合下nginx常规配置会导致除了tomcat主页外其他项目页面js/css/png等缺失.尤其是用了spring的静态资源的映射,比如<mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
Nginx常规配置
server
{
listen 80;
server_name localhost;
index index.html index.htm index.jsp;
root /var/www/web/ProA;
location /
{
index index.jsp;
proxy_pass http://localhost:8080;
}
.......
}
解决方案
在HOST下增加<Context path="" docBase="absolutelyPath/ProA" reloadable="true"></Context>,让ProA成为独立的项目路径
docBase:war包放置的目录路径
path:web网页访问项目的目录设置
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用