无法从URL访问django网站,但可以从IP地址访问

时间:2017-10-24 06:39:46

标签: django nginx web-hosting amazon-lightsail

我在Amazon lightsail上安装了django,我可以通过静态服务器IP地址访问我的网站。我的域名托管在Godaddy上。我在GoDaddy中更改名称服务器。但是当我尝试通过域名访问我的网站时,它仍然向我展示了Nignx欢迎页面。

欢迎来到nginx! 如果您看到此页面,则nginx Web服务器已成功安装并正常运行。需要进一步配置。 有关在线文档和支持,请参阅nginx.org。 nginx.com提供商业支持。 感谢您使用nginx。

在我的django settings.py中,我只给出了IP地址

ALLOWED_HOSTS = ['YOUR_AMAZON_LIGHTSAIL_IP']

在Nginx文件中,我也只添加了IP地址。

server {
    listen 80;
    server_name YOUR_AMAZON_LIGHTSAIL_IP;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/django_project;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/django_project/django_project.sock;
    }
}

我在托管服务器上使用Gunicorn和Nginx。

2 个答案:

答案 0 :(得分:0)

您必须将域名添加到允许的主机中,例如

ALLOWED_HOSTS = ['mydomain.name']

此用户只能通过您的域名访问该网站。如果您还希望他们能够通过IP访问您喜欢这个

ALLOWED_HOSTS = ['mydomain.name','ip.ip.ip.ip']

答案 1 :(得分:0)

我做了以下更改以允许域工作,

  1. 首先在AWS light sail上创建一个静态IP地址

  2. 将静态IP地址分配给您的VPS

  3. 创建DNS区域,将NameServer添加到域名提供商。在我的情况下它的Godaddy。

  4. 在django settings.py中,在允许的主机设置中添加域名

    ALLOWED_HOSTS = [' example.com',' 0.0.0.0']

  5. 在Nginx文件中添加域名

    服务器{     听80;     server_name example.com 0.0.0.0;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/django_project;
    }
    
    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/django_project/django_project.sock;
    }
    

    }

  6. 重启Nginx

    sudo service nginx restart

  7. 重启服务器

    sudo reboot