NGINX: Evitar que os usuários visualizem o site na porta (example.com:5000)

1

Eu configurei um VPS do Ubuntu, que está executando um aplicativo django. Estou usando waitress como um servidor WSGI e whitenoise para servir arquivos estáticos. Também nginx serve a pasta de mídia. A configuração atual funciona muito bem em example.com , mas eu gostaria de evitar que o site fosse exibido em example.com:5000 , já que os arquivos de mídia estão sendo veiculados nessa porta.

O comando que estou usando para executar o servidor é:

web: PYTHONUNBUFFERED=true env/bin/waitress-serve --port=$PORT project.wsgi:application

E a configuração do nginx:

upstream app_server {
    server 127.0.0.1:5000 fail_timeout=0;
}

server {
    listen 80 default_server;
    server_name _;

    client_max_body_size 4G;
    keepalive_timeout 10;

    location /uploads/ {
        alias /opt/media/;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_server;
    }
}

É possível ocultar o site em example.com:5000 ?

Pior caso - eu também posso servir a mídia na porta 5000?

    
por manosim 07.11.2015 / 17:46

1 resposta

1

Da sua configuração, parece que o nginx não está escutando a porta 5000. Assim, você deve investigar o que está realmente escutando nesta porta e bloqueá-lo para o mundo externo - a maneira mais fácil seria ligá-lo apenas ao host local. Desta forma, será acessível ao nginx, mas não a qualquer pessoa que não esteja nesta máquina exata.

    
por 07.11.2015 / 19:02