我想在nginx和IIS的单个服务器上测试负载平衡。 我设置nginx来监听localhost:90和IIS上的两个网站来监听localhost:81和localhost:82
这是我的nginx.conf
:
events {
worker_connections 1024;
}
http {
upstream backend {
server localhost:81;
server localhost:82;
}
server {
listen 90;
server_name backend;
location / {
proxy_pass http://localhost:80;
}
}
}
当我在浏览器上打开http://localhost:90时,它会返回504 Gateway Time-out。
实际上请求将发送到端口80(我在proxy_pass
中设置)而不是端口81和82
我知道当我们有多台服务器时负载均衡。 但有没有办法在具有多个端口的单个服务器上测试负载平衡?
答案 0 :(得分:1)
将配置更改为:
events {
worker_connections 1024;
}
http {
upstream backend {
server localhost:81;
server localhost:82;
}
server {
listen 90;
server_name _;
location / {
proxy_pass http://backend;
}
}
}
现在在端口90上打开localhost
阐释:
要使用http块中指定的上游,您需要使用其名称。
proxy_pass http://backend;
在执行反向代理时设置以下标头也是一种很好的做法(所以后端获取客户端信息而不是反向代理服务器):
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-User $remote_user;