6. Nginx 配置实例-负载均衡

以下是文章内容的Markdown格式输出,注意数学公式已经使用$公式$格式:

1. 实现效果

  • 浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均到 8080和8081 端口中。

2. 准备工作

  • 准备两台 tomcat 服务器,一台 8080,一台 8081。
  • 在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建页面 a.html,用于测试。

3. 在 nginx 的配置文件中进行负载均衡的配置

nginx.conf 中添加:

1
2
3
4
upstream myserver{
server 192.168.77.130:8080;
server 192.168.77.130:8081;
}

proxy_pass http://myserver;


贴一下配置文件代码:与本文无关,只是不想手敲…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
worker_processes  1;

events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

upstream myserver {
server 192.168.226.135:8080;
server 192.168.226.135:8081;
}
server {
listen 80;
server_name 192.168.226.135;

location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}


}

4. 重启 Nginx

1
./nginx -s reload

5. 测试

访问:

1
http://192.168.226.135/edu/a.html

访问结果在 8081 和 8080 之间切换。


6. 负载均衡策略

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,而且 Nginx 提供了几种分配方式(策略):

6.1 轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

1
2
3
4
upstream myserver{
server 192.168.77.130:8080;
server 192.168.77.130:8081;
}

6.2 weight

weight 代表权重,默认为 1,权重越高被分配的客户端越多。

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。例如:

1
2
3
4
upstream myserver{
server 192.168.77.130:8080 weight=10;
server 192.168.77.130:8081 weight=5;
}

6.3 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。

也就是说客户端在第一次访问某个服务后,后面都是访问此服务。

1
2
3
4
5
upstream myserver{
ip_hash;
server 192.168.77.130:8080;
server 192.168.77.130:8081;
}

6.4 fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

1
2
3
4
5
upstream myserver{
server 192.168.77.130:8080;
server 192.168.77.130:8081;
fair;
}

6. Nginx 配置实例-负载均衡
http://binbo-zappy.github.io/2024/12/15/nginx/6-Nginx配置实例-负载均衡/
作者
Binbo
发布于
2024年12月15日
许可协议