ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx负载均衡配置实例

2021-11-11 15:01:51  阅读:186  来源: 互联网

标签:负载 8080 8081 端口 cd Nginx 实例 edu 服务器


五、Nginx负载均衡配置实例

实现效果:访问 www.123.com/edu/a.html的时候,将请求平均分配到8080和8081端口。

准备工作:

1)准备两台Tomcat服务器(端口号为8080和8081)

2)在两台Tomcat里面的webapps目录下,创建目录edu,在目录edu下存放一个a.html文件。

在第四章 Nginx反向代理配置实例2 中,我们已经准备了两台Tomcat服务器,并且在8080端口下,我们已经创建好了edu目录,写好了a.html文件。

现在,我们要做的就是在8081端口的Tomcat服务器下也创建一个edu目录,并写一个a.html文件。

cd

cd tomcat8081/apache-tomcat-8.5.72/

mkdir edu

cp movie/a.html edu/

此时,如果还未启动tomcat,记得启动,已经启动的该步骤可以跳过。(可以通过 ps -ef | grep tomcat 查看进程是否启动)

#启动tomcat8080

cd

cd tomcat8080/apache-tomcat-8.5.72/bin/

./startup.sh

#启动tomcat8081

cd

cd tomcat8081/apache-tomcat-8.5.72/bin/

./startup.sh

完成后,我们就可以在Nginx的配置文件中进行负载均衡的配置了。

cd /usr/local/nginx/conf/

vim nginx.conf

内容如下:
在这里插入图片描述

解释一下:

首先在http块里面加upstream 然后取一个名字(我这里取名叫myserver)。然后写我们需要进行负载均衡的服务器的地址。这里因为是自己的8080和8081端口,所以直接写自己的ip:端口号即可。

然后再http块的server中,我们写自己监听的端口号,并修改server_name为服务器的ip地址。

最后在location / 中,我们加一个proxy_pass,让他将请求转发到 http://myserver。这个myserver其实就是我们上面定义的upstream。他会帮我们把接收到的请求分发到他里面定义的8080和8081端口。

如此,我们对负载均衡的配置就完成了。现在,我们来重启一下Nginx。

cd …/sbin/

./nginx -s stop

./nginx

然后我们来访问我们的/edu/a.html。
在这里插入图片描述
在这里插入图片描述

可以看到,访问同一个地址,Nginx帮我们已经实现了负载均衡,在两个Tomcat之间分发我们的请求。

Nginx对于负载均衡提供了几种分配方式:

  • 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器中,如果某些个后端服务器宕机,能自动剔除。

  • weight:weight代表每个服务器的权重值,默认为1,权重越高,被分配的用户数就越多。这种分配方式主要用于后端服务器性能不均的情况。使用方法如下:
    在这里插入图片描述

    此时,访问8081端口的次数会是8080端口的两倍。(我试了一下,就是连续访问两次8081后,就访问一次8080,然后再访问两次8081,再访问一次8080,一直这样下去)

  • ip_hash:每个请求按照用户的ip的hash结果分配。这样每个访客固定访问一个后端服务器,可以觉得session问题。(简单说就是,A用户访问我们的服务器的时候,如果一开始访问的是8080端口,那么他就一直访问的都是8080端口)
    在这里插入图片描述

  • fair:按后端服务器的响应时间分配,响应时间越短,越早被分配。(就是看8080和8081端口哪个比较快响应就让用户访问哪个)
    在这里插入图片描述

标签:负载,8080,8081,端口,cd,Nginx,实例,edu,服务器
来源: https://blog.csdn.net/weixin_44741023/article/details/121267635

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有