Nginx redirecionando em vez de passagem de proxy

1

Estou mudando o Apache para o Nginx no meu laboratório e temos vários projetos em subdomínios, então eu uso uma abordagem onde cada subdiretório tem seu servidor rodando em uma porta alta (8000 e acima), e o servidor principal em 80 apenas proxies para eles. Meu servidor 80 está configurado assim:

    include /etc/nginx/sites-enabled/*.conf;

    upstream php {
            server unix:/run/php-fpm.sock;
    }

    server {
            server_name example.com;
            listen 80;

            location / {
                    proxy_pass http://127.0.0.1:8000;
            }

            location /application {
                    proxy_pass http://127.0.0.1:8001;
            }

            location /phpmyadmin {
                    proxy_pass http://127.0.0.1:8002;
            }
    }

Por isso, tenho três outros serviços em diferentes portas, como segue:

server {
        listen 8000;
        root /var/www/path/to/application;
        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$args =404;
        }

        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass php;
        }
}

Este primeiro é um aplicativo Wordpress. Por algum motivo, ele redireciona para 127.0.0.1 em vez de passagem de proxy, e no localhost eu não tenho nada em execução, então eu obtenho 404. Mas em outro domínio. Como o que?

O serviço em 8001 ainda não existe. O serviço no 8002 é o phpmyadmin rodando assim:

server {
        listen 8002;
        root /var/www/path/to/phpmyadmin;
        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$args =404;
        }

        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass php;
        }
}

Este relata o erro 404, embora existam arquivos, mas pelo menos não redireciona para 127.0.0.1. O Nginx não reporta nenhum erro, nem o PHP-FPM escutando o socket.

O que está mal configurado, como posso corrigir esses erros estranhos e inconsistentes?

    
por ranisalt 30.04.2014 / 19:28

1 resposta

0

Você não precisa tornar sua configuração tão complexa. Tente assim:

include /etc/nginx/sites-enabled/*.conf;

upstream php {
        server unix:/run/php-fpm.sock;
}

server {
        server_name example.com;
        listen 80;

        location / {
                try_files $uri $uri/ /index.php?$args =404;
        }

        location /application {
                proxy_pass http://127.0.0.1:8001;
        }

        location /phpmyadmin {
                try_files $uri $uri/ /index.php?$args =404;
        }
        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass php;
        }
}
    
por 30.04.2014 / 21:12