配置upstream
打开nginx.conf添加如下配置
upstream模块配置中:
upstream my_test_stream {
#指定需要负载服务的地址和端口
server 192.168.192.11:8900 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.192.11:8901 weight=2 max_fails=3 fail_timeout=30s;
}
- weight: 设置后端服务器的权重,用于调整负载均衡比例。不需要可以去掉该参数
- max_fails: 定义了后端服务器的最大失败次数。如果达到这个失败次数,则该服务器被标记为暂时不可用。
- fail_timeout: 定义了服务器暂时不可用的时间,超过这个时间后,Nginx 会尝试重新将请求发送到该服务器。
配置server
以下配置需要添加,否则upstream的max_fails、 fail_timeout不会生效
#与被代理服务器建立连接的超时时间
proxy_connect_timeout 5s;
#获取被代理服务器的响应最大超时时间,当与被代理服务器通信出现指令值指定的情况时,认为被代理出错,并将请求转发给上游服务器组中的下一个可用服务器
proxy_read_timeout 10s;
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
#转发请求最大次数
proxy_next_upstream_tries 3;
proxy_next_upstream_timeout 10s;
default.d/*.conf配置
在default.d目录下分别创建test-demo-8900.conf、test-demo-8901.conf两个配置文件,其中test-demo-8900.conf的配置为:
server {
listen 8900;
server_name 192.168.192.11;
root /usr/share/nginx/html;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ^~/demo/ {
proxy_pass http://localhost:8800/;
proxy_set_header Host $http_host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "DELETE,POST,GET,OPTIONS";
add_header Access-Control-Allow-Headers "Origin,Authorization,Accept";
add_header Access-Control-Allow-Credentials true;
}
}
以上便实现了通过192.168.192.11:80端口,调用demo相关的接口,会负载均衡到192.168.192.11:8900、192.168.192.11:8901两个服务器上
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。