我想在使用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网关超时。
事实上,请求将发送到端口80 (我在proxy_pass中设置),而不是端口81和82
我知道负载均衡适用于有多台服务器的情况。但是,有没有办法在具有多个端口的单个服务器上测试负载平衡呢?
发布于 2017-03-16 22:44:53
将您的配置更改为:
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;https://stackoverflow.com/questions/42834220
复制相似问题