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

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包。

你可能感兴趣的:(服务器)