Proxy reverso Nginx - subdiretórios e subdomínios inexistentes redirecionando?

2

Eu tenho a seguinte configuração do nginx:

upstream toshiba15 {
    server toshiba15.local:80;
}

server {
    listen 443 ssl;
    server_name my.domain.com;
    ssl_certificate /etc/nginx/ssl/startssl-nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/startssl-nginx.key;
    root /usr/share/nginx/html/;

    location /dev/ {
            proxy_pass http://toshiba15/;
            proxy_redirect http://toshiba15/ /dev/;
            proxy_set_header        Host    $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
    }
}

Funciona principalmente como pretendido, mas um problema - quando eu especifico um subdiretório inexistente no uri, ele exibe o conteúdo na raiz do servidor proxied (toshiba15)!

O servidor proxy tem uma configuração nginx padrão de ações.

EDIT : Eu resolvi o problema do subdomínio adicionando outro servidor que retorna o 404 e usando regexes para o meu server_names

Além disso, se eu especificar um subdomínio indefinido, ele redireciona para a raiz do servidor proxy (my.domain.com)

Obrigado!

    
por Matchete 11.11.2015 / 20:45

1 resposta

0

Ok, eu descobri o que fazer. No servidor upstream eu movi as diretivas raiz e índice dentro do bloco de localização e removi as tentativas.

No proxy, para cuidar do problema do subdomínio, eu configurei um catch-all no topo sem um servername e retornei o 404. Eu adicionei um regex ao nome do domínio principal.

    
por 11.11.2015 / 21:51