Day02

    xiaoxiao2022-07-04  112

    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

    2. 分别修改端口号

    #将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 #其实端口号可以任意只要不冲突即可.

    

    3. 分别修改每个tomcat的欢迎页面

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

    

    4. 分别启动每个tomcat

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

    服务器运行效果:

    

    5. 配置Nginx的负载均衡

    找到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/

    实现了负载均衡的集群效果,默认采用的是权重负载均衡策略:

    

    一一哥Sun 认证博客专家 Elasticsearch Java 架构 十年软件开发授课经验,专注大学生毕业设计及面试求职私塾式指导!对Android/JavaWeb/微服务/H5等技术领域有深入研究!曾任国内最大的智能物联网平台架构师,参与国内最大的智能物流系统平台天眼/冷链/订单/车次系统研发;曾主导国内首款国学教育App及后台架构;负责大庆油田采油管理系统,铝业云计算系统,湖南广电地面波机顶盒等项目的研发。目前担任某著名培训机构教学主管,培养了大批入职阿里,IBM,百度,国家电网等名企的高薪学生.本人坚持只有一心做教育,才能做一流教育的理念,被学生爱称为"一一哥"!QQ:2312119590,今日头条号:一一哥Sun;知乎ID:一一哥
    最新回复(0)