nginx 使用 ip 但不使用域名

问题描述 投票:0回答:3

我正在尝试使用gunicorn 和nginx 设置一个django 应用程序。我遵循了本教程。一切似乎都正常,但是当我将

/etc/nginx/sites-available/project
中的 server_name 编辑为服务器 IP 地址以外的任何内容时,我得到默认的 nginx 索引页面而不是 django 应用程序。当这是服务器配置时:

server {
    listen 80;
    server_name <myserverip>;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/django/project;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

当我将 IP 地址输入浏览器时,一切都会按预期工作(nginx 为应用程序提供服务),但如果我添加域名来替换 IP,或者除了 IP 之外,我得到的只是任一位置的 nginx 页面。我的settings.py中的ALLOWED_HOSTS包括服务器ip和域名。我在 nginx 日志中也看不到任何问题。目前不确定问题是什么。

django python-3.x nginx gunicorn
3个回答
5
投票

您应该能够更改 server_name 以包含您的域:

server_name <myserverip> <mydomainname>;

如果您只想使用域名访问该网站,请随意删除 IP 地址。您还需要添加您想要为同一站点提供服务的任何子域(即 www)。例如:

server_name youdomainname.com www.yourdomainname.com;

更新配置文件后不要忘记重新启动 nginx。


3
投票

我解决了这个问题。 nginx 默认配置 /etc/nginx/sites-available/default 影响了我的配置。我注释掉了默认配置的服务器部分,域正在按预期工作。


2
投票

在server_name中你可以写一个IP或URL,但同时在你的settings.py中你必须授予它权限。

[设置.py]

ALLOWED_HOSTS = ['IP', 'URL']

在这里,我上传了一些可以帮助你的东西到我的github:

Github/Nginx

© www.soinside.com 2019 - 2024. All rights reserved.