web-dev-qa-db-fra.com

Nginx renvoie le code HTML par défaut pour certains utilisateurs

Je suis novice en administration système. J'ai configuré le serveur Web avec nginx en tant que proxy et gunicorn en tant que serveur python. Le site Web fonctionne avec succès sur le domaine http://victorywow.com . Mais pour certains utilisateurs, il retourne Welcome to nginx!. J'ai deux fichiers dans les sites disponibles (default, Django). C'est config pour Django:

server {
    listen 80;
    server_name victorywow.com; #ip,^
    access_log  /var/log/nginx/access.log;
    error_log /var/log/nginx/error-server.log;

    location /static/ {
        root /opt/Django/wow/;
        expires 30d;
    }

    location /media/ {
        root /opt/Django/wow/;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

Mon gunicorn fonctionne sur le port 8000. Je ne comprends pas pourquoi certains utilisateurs peuvent utiliser un site Web et d'autres non. Merci beaucoup!

1
Kyrylo Romantsov

Votre server_name ne correspond qu'à victorywow.com, mais www.victorywow.com est également résolu sur le même serveur. Puisque www.victorywow.com ne correspond pas à server_name de ce bloc serveur, il correspond à la configuration par défaut, qui affiche la page d'arrivée par défaut de nginx.

Utilisez quelque chose comme:

server_name victorywow.com www.victorywow.com;

Il est facile d’aller dans www.victorywow.com au lieu de victorywow.com: tapez foo et appuyez sur CtrlEnter et la plupart des navigateurs vous mèneront à www.foo.com.

2
muru