1 votes

NGINX : Empêcher les utilisateurs de visualiser le site web sur le port (exemple.com:5000)

J'ai mis en place un VPS Ubuntu, qui exécute une application Django. J'utilise waitress comme serveur WSGI et whitenoise pour servir les fichiers statiques. Voir aussi nginx sert le dossier média. La configuration actuelle fonctionne très bien à example.com mais je voudrais empêcher le site web de s'afficher pour example.com:5000 puisque les fichiers multimédia sont servis sur ce port.

La commande que j'utilise pour exécuter le serveur est la suivante :

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

Et la configuration de 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;
    }
}

Est-il possible de cacher le site web de example.com:5000 ?

Ps. Dans le pire des cas, puis-je également servir le média au port 5000 ?

1voto

drookie Points 7850

D'après votre configuration, il semble que nginx n'écoute pas le port 5000. Par conséquent, vous devriez rechercher ce qui écoute réellement sur ce port, et le bloquer pour le monde extérieur - le moyen le plus simple serait de le lier à localhost uniquement. De cette façon, il sera accessible à nginx, mais pas à quiconque n'est pas sur cette machine exacte.

0 votes

Je ne suis pas un administrateur système - j'étais juste en train de jouer avec un VPS par curiosité --host=ADDR Le problème est réglé ! Merci beaucoup pour votre aide !

0 votes

C'est exactement ce que je recherche ! Pouvez-vous m'indiquer comment je peux le bloquer pour le monde extérieur et le lier à localhost uniquement ?

0 votes

Dans la documentation : "--host=ADDR Nom d'hôte ou adresse IP sur laquelle écouter, la valeur par défaut est '0.0.0.0', ce qui signifie "toutes les adresses IP de cet hôte"". Vous devez donc configurer 127.0.0.1 comme adresse IP de liaison.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X