怎么改配置才可以实现前端需求:查看请求到底落在哪台后端应用服务器?
通过查阅文档,我们看到upstream模块有两个内置变量,一个是upstream_addr,一个是upstream_status, 配置这两个参数,可以查看到请求落在了后端的具体哪个server上
配置如下:在server location加上这两个变量,通过添加请求头backendIP和backendstatus 来获取这两个变量的值。
server {
listen 9001 ;
server_name localhost;
location / {
proxy_pass http://minio_http;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header backendIP $upstream_addr;
add_header backendCode $upstream_status;
client_max_body_size 99999m;
}
}
upstream minio_http {
least_conn;
server 192.168.166.20:9000 weight=1;
server 192.168.166.21:9000 weight=1;
server 192.168.166.22:9000 weight=1;
server 192.168.166.23:9000 weight=1;
keepalive 1000;
}
此时浏览器访问负载均衡入口,查看请求响应:
可以看到请求具体被转发到了哪台服务器上,以及相应状态码。
提示:请勿用于线上环境。