Nginx反向代理,实现tomcat集群负载均衡
注:本教程系统为 Ubuntu18.04
一.Linux搭建Nginx负载均衡集群负载均衡:通过 Nginx 来配置反向代理,这样我们只需要访问 Nginx 即可,由 Nginx 来决定在内部转发到哪个服务器.
此集群是采用一台Ubuntu18.04,利用2个tomcat服务器为例进行模拟配置.
1. 准备2个Tomcat#切换为超级管理员
su
#选择之前解压的tomcat,复制其到tomcats目录下的 tomcat1.
cp -r /usr/local/apache-tomcat-8.5.20 /usr/local/tomcats/tomcat1
#再次选择之前解压的tomcat,复制其到tomcats目录下的 tomcat2.
cp -r /usr/local/apache-tomcat-8.5.20 /usr/local/tomcats/tomcat2

#将tomcat1的conf/server.xml中的端口号进行修改:
#主要是将端口号8005、8080、8009
#修改为8105、8180、8109
#命令:
vim tomcat1/conf/server.xml
#将tomcat2的conf/server.xml中的端口号进行修改
#主要是8005、8080、8009
#修改为8205、8280、8209
#命令:
vim tomcat2/conf/server.xml
#其实端口号可以任意只要不冲突即可.


#tomcat欢迎页面的路径为/usr/local/tomcats/tomcat1/webapps/ROOT/index.jsp
nano /usr/local/tomcats/tomcat1/webapps/ROOT/index.jsp


#测试刚刚改变的端口号是否能用.
#分别启动刚刚配置的2个tomcat,在浏览器中访问:
/usr/local/tomcats/tomcat1/bin/startup.sh
/usr/local/tomcats/tomcat2/bin/startup.sh
服务器运行效果:


找到Nginx的安装目录,找到nginx.conf文件.
#使用下面的命令编辑nginx的配置文件:
vim /etc/nginx/nginx.conf
#在http标签内部,配置需要进行负载均衡的N台服务器,添加:
#其中 server_syc代表的是服务器的别名,内部指向多台服务器.
upstream server_syc{
server 192.168.87.108:8180;
server192.168.87.108:8280;
}
#然后在server标签中修改添加:
#location 代表访问的路径,/ 代表当前访问 ngnix 的根路径;
#proxy_pass代表转发到什么地址,后面填写 别名 就可以,它会自动从别名的服务器 列表中选择一个地址进行访问.
#完整配置为:
http {
#配置http://localhost:80集群负载均衡
upstream server_syc{
server 192.168.87.108:8180;
server 192.168.87.108:8280;
}
server {
listen 80;
server_name localhost;
location / {
#如果只做一台机器的反向代理,则不需要配置别名,只需要将proxy_pass 的值设置为具体的访问地址即可.
proxy_pass http://server_syc;
}
}
}
注意:新版 Nginx 的 upstream
配置中的名称不可以有下划线("_"),否则会报 400
错误
重新加载nginx配置文件:
#重新启动nginx即可,命令:
service nginx reload
#在浏览器中进行访问:
http://192.168.87.108/
实现了负载均衡的集群效果,默认采用的是权重负载均衡策略: