无法使用nginx进行负载平衡

无法使用nginx进行负载平衡,nginx,Nginx,在我的主机上,我有一个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

在我的主机上,我有一个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页面。我不确定我做错了什么以及如何修复它。

您将反向代理配置放在了错误的位置块下

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;
    }

}
}
Try/location块

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;
    }

}
}

我发现这个问题时,我自己的故障排除与相同的症状,但发现了不同的解决方案。 对于使用yum存储库在CentOS上进行的默认安装,nginx.conf包含

include/etc/nginx/conf.d/*.conf

我认为它覆盖了我在nginx.conf中的配置。在注释或完全删除此include语句并重新启动nginx之后,负载平衡工作正常