Redirecionamento Nginx *: porta para subdomínio

1

Estou trabalhando com Nginx e quero saber como redirecionar todas as solicitações com uma porta específica para um subdomínio?

Este é o meu default.conf :

server{
        listen 80 default_server;
        server_name localhost;

        location / {
                root /usr/share/nginx/html;
        }
}

server{
        listen 80;
        server_name blog.mydomain.com;

        location / {
                proxy_pass   http://my-ip:8080;
        }
}

Então, com isso, eu tenho o padrão mydomain.com para a pasta html, e um subdomínio blog.mydomain.com serve uma aplicação executando a porta 8080.

Meu problema é quando tento acessar diretamente my-ip:8080 ou mydomain.com:8080 ou blog.mydomain.com:8080 o servidor atende o aplicativo que está executando a porta 8080 e desejo redirecionar todas essas solicitações para blog.mydomain.com sem o :8080 .

Como posso fazer isso? Redirecionar automaticamente para blog.mydomain.com se eu especificar :8080 na URL?

    
por Clément Andraud 21.11.2016 / 15:48

1 resposta

1

Acho que você não entende como funciona.

O NGINX não é o que está servindo os arquivos na porta 8080, mas o aplicativo em execução nessa porta. Se você quiser desabilitar a porta 8080 servindo os arquivos, você deve vincular o aplicativo a 127.0.0.1:8080 ou usar um firewall para evitar a conexão a ele.

Além disso, como sua configuração mostra as solicitações de proxy ao seu IP (se tiver sido redigido, imagino que seja seu endereço público), alcançar um redirecionamento na porta 8080 levará a um loop de redirecionamento.

    
por 21.11.2016 / 15:59