nginx实现tomcat动静分离详解

2019-10-17 18:34:47于丽

2)配置动静分离

    #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。 
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { 
  root /webapps/myproject/code/static-resource; 
      #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力 
  expires 1d; 
} 
location ~ ^/(WEB-INF)/ {#这个很重要,不然用户就可以访问了 
      deny all;  
    } 

这里需要注意,外部静态文件的存放路径,应当与请求中路径一致,以免nginx拼接路径后,由于路径不存在而找不到文件。如果出现js、css等不加载的情况,可以查看nginx的errorlog进行调试修正,日志位于nginx目录下的logs目录内,如下截取一段错误的日志:


[error] 7195#0: *1693 open() "/home/cms/include/dedeajax2.js" failed (2: No such file or directory), client: 101.226.35.225, server: localhost, request: "GET /cms/include/dedeajax2.js HTTP/1.1"   

可以看到,GET请求是 “ /cms/include/dedeajax2.js ”,这时nginx就会在配置中的 /home 下,寻找这一路径的文件,完整路径为:

/home/cms/include/dedeajax2.js 

报错为 no such file or directory ,就可以在对应的 /home 目录下看文件路径的问题。

配置成功后,就可以发现静态文件通过nginx处理了,静态文件的请求不再进入tomcat服务器,从而可以打包时,静态文件的目录如js、css等不再打进war包。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。