Quietly tell you

没有什么技术是一篇文档解决不了的,如果有,那就两篇。

Tomcat集群之Nginx篇(二:Nginx与Tomcat整合实现静态分离)

上两天曾经写了一篇关于Nginx的简单介绍的文章,那么今天继续写,本篇文章主要写了Nginx与Tomcat整合并实现动静态分离。至于Nginx实现Tomcat服务器的负载均衡嘛,下篇文章讲。

关于Nginx的一些操作说明在这里我就不多说了,具体请参考我的上一篇文章http://bl.321aiyi.com/2016/11/12/1/

直接上主题,我决定用Nginx给我的这个网站做静态分离。先访问一下我的Tomcat地址:http://localhost:8081/bianchangm (我是直接在Eclipse运行的,所以后面有工程名)

接下来,修改nginx.conf文件,在HTTP块的server块中添加以下代码

location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ \.(js|css)?$
{ expires 1h; }
#静态文件由Nginx直接处理
		
location ~ \.(jsp|jspx|do|e)?$ {
	index	index.html;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass http://localhost:8081;        #这里对应你Tomcat服务器的地址
}
#Jsp、Jspx、do、e的请求交给Java服务器(如Tomcat)处理

重启Nginx然后接下来用80端口访问一下http://localhost/bianchangm

出现404错误,这是初次接触Nginx的朋友经常犯的常识性问题,这并不是什么高深的问题,但确实经常犯的问题。原因是Nginx没有找到bianchangm这个路径。这个时候你在Nginx的html目录里创建一个bianchangm文件夹即可。

再次访问http://localhost/bianchangm

这次变成了403错误。这个错误的原因就是当前目录中没有找到索引页面(常见的索引页面有index.html,index.jsp等)我在上面的配置代码中定义了index.html 这个索引页面,也就是说,在bianchangm这个目录中至少要有这么一个索引文件。

我把WebContent下的所有静态文件拷贝到Nginx/html/bianchangm中,其中不包含WEB-INF文件夹,并在Nginx/html/bianchangm目录冲创建index.html文件

<html>
	<head>
		<meta http-equiv="refresh" content="0;url=index.jsp"> 
	</head>
</html>

这个文件的作用是访问默认路径时跳到对应的index.jsp文件中。编写好后保存并刷新浏览器。得到如下页面

这个时候就已经大功告成了,你看到的就是动静态分离处理的页面。静态资源是通过Nginx加载的,业务逻辑处理是在Tomcat上处理的。如果想要验证一番的话,直接把Nginx/html/bianchangm文件夹里面的所有静态文件删掉,然后再刷新一下,你就会看到样式消失了,只留下了Tomcat处理出来的html代码。所以说这给Tomcat减少了很大的压力。如下图:

把静态文件恢复到Nginx/html/bianchangm后网站样式就会恢复正常。

本篇文章就到这里,下一篇文章主要介绍用Nginx对Tomcat做集群部署,实现基于反向代理的负载均衡效果。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注