在我的主机上,我有三个一个Web服务实例 - 它们在端口32826,32827和32828上运行。所以当我转到127.0.0.1:32826或127.0.0.1:32827或127.0.0.1:32828时,我在浏览器中看到一个不错的网页。
此外,我在同一台主机上运行nginx。现在我希望它在这三个实例之间进行负载平衡。我是这样做的:
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile on;
upstream app_servers {
server 127.0.0.1:32826;
server 127.0.0.1:32827;
server 127.0.0.1:32828;
}
server {
listen 80;
root /code;
index index.php index.html;
location / {
try_files $uri/ $uri/ /index.php;
}
location ~ \.php$ {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
location ~ /\.ht {
deny all;
}
}
}
我将此配置放入'/etc/nginx/nginx.conf'并重新启动nginx。然而,当我转到127.0.0.1
时,我只看到一个默认的欢迎nginx页面。我不确定我做错了什么,我该怎么办呢。
答案 0 :(得分:1)
您正在将反向代理配置置于错误的位置块下。
尝试/位置阻止。
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile on;
upstream app_servers {
server 127.0.0.1:32826;
server 127.0.0.1:32827;
server 127.0.0.1:32828;
}
server {
listen 80;
root /code;
index index.php index.html;
location / {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
#location ~ \.php$ {
#proxy_pass http://app_servers;
#proxy_redirect off;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Host $server_name;
#}
location ~ /\.ht {
deny all;
}
}
}
答案 1 :(得分:0)
我在解决自己的问题时发现了这个问题,同样的症状,但发现了一个不同的解决方案。 使用yum存储库在CentOS上进行默认安装时,nginx.conf包含
包括/etc/nginx/conf.d / * .conf
我相信它会覆盖我在nginx.conf中的配置。在评论(或完全删除)此include语句并重新启动nginx之后,负载平衡按预期工作。