近期项目又需要用到集群,之前也弄过nginx,但是总是出问题,只好暂用配置繁琐的Apache顶一下。几个月之后重新来学习,几个月前的问题竟然就解决了。在此记录下来,算是个年终技术总结哈哈。
一、准备工具:
Nginx-1.13.3 两个Tomcat-7.0.63 这里本地测试环境就垂直集群
server | IP | port |
Nginx | 192.168.10.158 | 7777 |
Tomcat1 | 192.168.10.158 | 8080 |
Tomcat2 | 192.168.10.158 | 8081 |
二、Tomcat配置:
tomcat没啥配置这里就用个测试文件试试就行了。
在tomcat的
websapp\balance
下写一个测试文件
test.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.*"%>
<html>
<head>
<title>ApacheTomcatTest</title>
</head>
<body>
<%
out.println("<br> SESSION ID:" + session.getId() + "</br>");
out.println("这是8080");
%>
</body>
</html>
红字内容根据不同的tomcat配置输出就行了。
两个tomcat分别在server.xml配置端口,需要特别注意
端口冲突问题。
修改之后测试一下是否所有tomcat都正常启动。
三、Nginx配置:
weight:权重比值,值越高,那个节点的的负载越大。
proxy_connect_timeout 1; 连接超时时间
proxy_read_timeout 1; 读取超时时间
proxy_send_timeout 1; 发送请求时间
这三个超时时间设置短一点,nginx默认的超时时间是一分钟,可以避免其中一个tomcat宕机,nginx响应很慢的问题。这也是我上次遇到的一个坑。
四、启动Nginx并测试:
cmd下执行
http://192.168.10.158:7777/balance/test.jsp
F5刷新几次看看是否随机到tomcat
如图所示就是成功了。集群部署还有一个很需要解决的问题就是session共享问题,放在下一个章节单独讲讲。