Nginx try_files e o local nomeado não está funcionando como esperado

1

Anteriormente (cerca de 5 meses atrás), tudo estava funcionando bem, agora, em vez de @app index.html ser veiculado.

O mesmo problema na versão nginx: 1.6.2 e 1.8

Este é o meu /etc/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen       80;
        server_name  localhost;
        root   /opt/app/server/html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /var/www/html;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

Este é o meu /etc/nginx/conf.d/user_example.conf

server {
    listen 80;
    server_name user.example.com;
    root /home/user/webapps/;

    location / {
        try_files $uri $uri/ @app; (removed index.html;)
    }

    location @app {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_pass http://127.0.0.1:9000;
    }
}

Alguém poderia me explicar por que @app é ignorado?

Isso pode ser outra pergunta, mas ... Se eu remover /home/user/webapps/index.html e ir para user.example.com , recebo 403 Forbidden . E eu quero 'executar' proxy_pass de @app, o que eu preciso mudar?

Configuração alterada - mas ainda gostaria de saber como usar esse local nomeado.

server {
    listen 80;
    server_name user.example.com;
    root /home/user/webapps/;

    location / {
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_pass http://127.0.0.1:9000;
    }
}

O problema não foi a localização nomeada @app mas $uri/ permissões erradas sobre o diretório /home/user/webapps . Problema resolvido.

    
por Abc Xyz 05.03.2016 / 18:35

0 respostas

Tags