Nginx 为某些用户返回默认 html

Nginx 为某些用户返回默认 html

我是系统管理新手。我已将 web 服务器配置为 nginx 作为代理,将 gunicorn 作为 python 服务器。网站在域上成功运行http://victorywow.com。但对于某些用户,它会返回Welcome to nginx!。我在 sites-available 中有两个文件(defaultdjango)。这是配置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;
    }
  }

我的 gunicorn 在 8000 端口上运行。我不明白为什么有些用户可以使用网站,而有些用户却不能。非常感谢!

答案1

您的server_name不仅匹配victorywow.com,而且www.victorywow.com还解析到同一台服务器。由于www.victorywow.com不匹配此服务器块的server_name,因此它与默认配置匹配,该配置显示默认的 nginx 登陆页面。

使用类似:

server_name victorywow.com www.victorywow.com;

很容易就可以转到www.victorywow.com而不是victorywow.com:输入foo并按下CtrlEnter,大多数浏览器都会带您到www.foo.com

相关内容