目标:实现在Windows平台下完成Nginx+Tomcat负载均衡配置
一般情况是使用多台PC机操作,但为了方便,可以使用同一个PC,修改Tomcat端口实现测试效果。
一、准备工作
nginx-1.7.9,下载地址:http://nginx.org/en/download.html
apache-tomcat-7.0.57,下载地址:http://tomcat.apache.org/download-70.cgi
将以上两款软件分别下载并解压,其中tomcat需要准备两份。
二、Tomcat配置
server.xml配置。在apache-tomcat-7.0.57\conf文件夹下可找到server.xml文件。
2.1、修改Server端口
<Server port="XXXX" shutdown="SHUTDOWN">
改为
<Server port="XXXX" shutdown="SHUTDOWN">
2.2、修改Connector端口
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443">
改为
2.3、修改Engine端口
<Engine name="Catalina" defaultHost="localhost">
改为
tomcatX 在这里表示不同的tomcat,我的两个 tomcat 分别使用 tomcat8080和tomcat8081,这个设置主要用以Tomcat集群。
2.4、测试Tomcat配置
分别启动两个Tomcat,无报错且能够访问则表示配置成功。
三、Nginx配置
3.1、解压Nginx,访问解压目录中nginx.exe双击,在浏览器中直接访问http://localhost/,如果出现下图则表明Nginx已正常启动。
这里只需要修改Nginx的配置,让它通过tomcat来转发,所以我们在这一步只需要在nginx.conf中添加几行代码就行。
http {
#这两个文件是需要新建的,要导入
include proxy.conf; #负责代理转发
include gzip.conf; #负责压缩数据流
upstream localhost {
server localhost:8081 weight=1;
server localhost:8082 weight=1;
}
server {
#For Tomcat
location ~ .*.jsp$ { #匹配以jsp结尾的,tomcat的网页文件是以jsp结尾
index index.jsp;
proxy_pass http://localhost; #主要在这里,设置一个代理
}
#For Tomcat
location /nginxstatus {
stub_status on;
access_log on;
auth_basic "nginxstatus";
auth_basic_user_file htpasswd;
}
}
}
一下这两个文件放到与Nginx配置文件同目录下即可。
proxy.conf 文件内容
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
gzip.conf 文件内容
gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript;
到此处已经都配置完毕。
四、测试反馈
4.1、准备测试代码
编写一个简单JSP文件并放到两个Tomcat的webapps中新建的test文件夹中
index.jsp内容如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getId());
out.println("
SESSION ID:" + session.getId()+"
");
%>
4.2、启动Nginx和Tomcat在浏览器中访问http://localhost/test/index.jsp即可。
另附Nginx配置文件nginx.conf中文详解:http://www.ha97.com/5194.html