无法使用nginx

时间:2017-01-18 13:26:37

标签: 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 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页面。我不确定我做错了什么,我该怎么办呢。

2 个答案:

答案 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之后,负载平衡按预期工作。