1.工具
nginx-1.8.0
apache-tomcat-7.0.69
2.目标
实现高性能负载均衡的Tomcat集群:
3.步骤
1)下载解压Nginx,此次用的nginx1.8.0,下载地址:http://nginx.org/download/
2)解压两个tomcat,分别命名为apache-tomcat-7.0.69 - 1、apache-tomcat-7.0.69 - 2
3)修改两个Tomcat的启动端口,分别为18080、28080。下面以修改第一台Tomcat为例,打开Tomcat的conf目录下server.xml:
需要修改3处:
<Server port="8015" shutdown="SHUTDOWN">
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8090" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443"/>
4)修改两个Tomcat的默认页面,用来区分到底访问的是哪台Tomcat
\webapps\ROOT\index.jsp
5)启动两个Tomcat(双击bin文件下面的startup.bat),并访问是否正常
注意:startup.bat 文件中的SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
地址一致会导致端口号被占用,所以需要修改address
6)修改nginx的配置文件实现负载均衡 \nginx-1.8.0\conf下的nginx.conf
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
gzip on;#启用Gizp压缩
#服务器的集群
upstream netitcast.com {
#集群的服务器列表,最终请求会被转发到这些服务器上执行
server 127.0.0.1:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:28080 weight=2;
}
#当前的Nginx的配置
server {
listen 80;#监听80端口,可以改成其他端口
server_name localhost;############## 当前服务的域名
location / {
proxy_pass http://netitcast.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
核心配置如下:
7)整体配置完成,启动Nginx
打开DOS窗口,进入Nginx目录,第一步中解压缩的Nginx目录下,然后start nginx
8)在浏览器地址栏输入:localhost\index.jsp,查看运行状况
会发现每次刷新页面,访问的Tomcat不同,有时候是Tomcat1,有时候是Tomcat2。
到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx
中配置的两台Tomcat的权重起的作用。