您的位置:首页 > 运维架构 > Tomcat

tomcat服务器下使用nginx实现最简单的动静分离--解决css、js不加载的问题

2016-11-23 16:39 1341 查看
nginx可以作为静态资源的服务器。nginx的动静分离,比如拿nginx+tomcat来说,可以将一些本来由tomcat处理的js、css等静态文件,交给nginx来处理,tomcat服务器只处理需要Java处理的jsp以及后台请求等,这样就有效减轻了tomcat服务器的压力。可以使用nginx的动静分离,将javaWeb工程中的js、css以及图片等都进行了分离,放在了tomcat的外部。

nginx的安装和配置见:CentOS6.5下nginx的安装与配置

对于css、js这些静态文件,可以放在外部文件夹下,比如可以放在 /home/ 路径下,然后在nginx的conf目录下打开 nginx.conf 文件,加入:

location ~ .*\.(css|js|jpg|png)$ {
root /home;
}

location / {
proxy_pass http://localhost:8080; }


这里需要注意,外部静态文件的存放路径,应当与请求中路径一致,以免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包。

转载自:http://blog.csdn.net/yx0628/article/details/53187264
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: