需求
需要将用户请求分发到 2台 以上 HTTP服务器。
环境说明
节点清单:
IP地址 | 说明 |
---|---|
192.168.88.216 | 安装 Nginx ,进行分发请求 |
192.168.88.217 | HTTP服务,端口 9000 |
192.168.88.218 | HTTP服务,端口 9000 |
服务器架构如下:
部署说明:
192.168.88.217
:节点部署了 HTTP服务,访问请求如下:
192.168.88.218
:节点部署了HTTP服务,访问请求如下:
解决方案
使用 Nginx 的 HTTP模块,在 upstream
块配置 HTTP 服务器地址信息,即可实现需求。
配置信息如下:
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]#
[root@localhost nginx]# cat conf/nginx.conf
... ...
upstream backApi {
server 192.168.88.217:9000 weight=1;
server 192.168.88.218:9000 weight=1;
}
server {
listen 9999;
location / {
proxy_pass http://backApi;
}
}
... ...
配置文件修改完成之后,重新加载配置文件,命令如下:
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]#
[root@localhost nginx]# ./sbin/nginx -s reload
[root@localhost nginx]#
在上述配置中,启用了两台 9000
端口 HTTP 服务器构成服务器集群,Nginx 对外提供服务端口为 9999
weight
参数用于指定每个服务器的权重。在负载均衡中,服务器的权重决定了它们被选择的频率。较高权重的服务器将收到更多的请求。
假若:217:9000 weight = 1,而 218:900 weight=2。则每三个请求中,会有两个请求发送到 218:9000 节点
验证
访问:http://192.168.88.216:9999/nginx/index,每次刷新,请求都会轮询的发送至下游服务节点