tomcat集群+nginx反向代理实现负载均衡
简介:项目中遇到这样一个需求:
1,要解决单点故障即(一台服务器宕机,项目不能能够正常使用)
2,要解决并发压力
处理方式:
市场上主流nginx完全能够满足这两个需求,单点故障问题,使用集群概念,也是可以的。
准备工作:
1,tomcat服务器两个,(搭建集群)下载地址:http://tomcat.apache.org/
2,nginx 服务器,(负载均衡)下载地址:http://nginx.org/
搭建:
1:修改tomcat端口号,防止出现tomcat两个集群无法正常启动,修改路径:
apache-tomcat-7.0.47\conf\server.xml文件
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
只需修改一个tomcat的配置文件即可,务必保证两个tomcat的post不一致
2:修改nginx配置文件
修改路径:nginx-1.15.8\conf\nginx.conf
2-1添加服务器集群。其中ServerCluster为服务器集群名字;server为tomcat启动地址;weight代表权重,权值越高被分配到的几率越大
upstream ServerCluster.com { #服务器集群名字
server 127.0.0.1:8080 weight=1;#服务器配置
server 127.0.0.1:8090 weight=2;
}
2-2配置nginx启动地址,及其访问集群,其中:listen:启动端口号,不要和集群中的服务器端口号一致。
proxy_pass :务必和集群名字相同
server {
listen 9090;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://ServerCluster.com;
proxy_redirect default;
}
}
启动:
1,启动集群服务器,即:两台tomcat服务器
2,启动nginx,千万不要点击nginx.exe通过cmd命令启动
2-1,进入nginx安装目录:cd +“解压目录”
2-2,启动nginx服务器:start nginx
2-3,查看进程是否存在:tasklist /fi "imagename eq nginx.exe"或进入任务管理器查看
2-4:访问nginx地址查看是否访问成功,即:localhost:+“nginxd的listen”,为了验证集群效果,可修改tomcat启动之后的访问页面。多次刷新访问即可