Python Django/Nginx不允许主机头错误

Python Django/Nginx不允许主机头错误,python,django,nginx,dns,Python,Django,Nginx,Dns,有几个这样的线程,但没有一个能回答我的问题。我有一个服务器托管一个网站,如果你直接通过ip地址在那里工作的很好,但是我买了一个dns,我试图重定向到ip的dns。我使用的是django 1.11.4(当前的pip安装版本)。设置所有DNS服务器后,我可以ping服务器,但如果我转到浏览器并键入DNS,我会收到以下错误: Environment: Request Method: GET Request URL: http://thefelpub.com/ Django Version: 1

有几个这样的线程,但没有一个能回答我的问题。我有一个服务器托管一个网站,如果你直接通过ip地址在那里工作的很好,但是我买了一个dns,我试图重定向到ip的dns。我使用的是django 1.11.4(当前的pip安装版本)。设置所有DNS服务器后,我可以ping服务器,但如果我转到浏览器并键入DNS,我会收到以下错误:

Environment:


Request Method: GET

Request URL: http://thefelpub.com/

Django Version: 1.11.4
Python Version: 2.7.12
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'pub')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')



Traceback:

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _legacy_get_response
  244.             response = middleware_method(request)

File "/usr/local/lib/python2.7/dist-packages/django/middleware/common.py" in process_request
  57.         host = request.get_host()

File "/usr/local/lib/python2.7/dist-packages/django/http/request.py" in get_host
  113.             raise DisallowedHost(msg)

Exception Type: DisallowedHost at /
Exception Value: Invalid HTTP_HOST header: 'thefelpub.com'. You may need to add u'thefelpub.com' to ALLOWED_HOSTS.

我已将我的dns添加到ALLOWED_HOSTS=[]列表中,但无论我尝试了多少个dns变体(包括“*”),每次尝试到达时都会收到相同的错误。

在错误消息中提到,您当然需要在其中添加“offelpub.com”

或者,不建议:

ALLOWED_HOSTS = [*]

将以下内容添加到您的
ALLOWED_HOSTs=['45.55.54.110',www.offelpub.com','offelpub.com']
,保存settings.py文件,然后重新启动gunicorn,
service gunicorn restart
以重新启动Django。

添加
ALLOWED_HOSTs=['*']之后是否重新启动Django?
,每次尝试更改ALLOWED_HOSTS后我都会重新启动nginx您重新启动gunicorn而不是nginx以使更改生效此外,您需要在nginx可用站点中提供相同的域名,以便将给定的答案添加到您的seettings中。pyI尝试过:ALLOWED_HOSTS=['thelpub.com']我也尝试过:ALLOWED_HOSTS=['*']两者都不起作用。代码后面有:ALLOWED_HOSTS=ip_addresses(),我不太确定这是否会引起任何问题(这是Django提出的)@deaspo我只做了大约24个小时,所以我还是个傻瓜。我如何在nginx中提供域名?您需要更多解释吗?我建议你向上投票并回答我的问题。我还没有加密它,因为我无法让DNS指向它。这是下一个任务,这让我望而却步。我添加了
server\u name example.com www.example.com
to并将示例更改为我的服务器名,但现在如果我键入thefelpub.com,我会看到nginx欢迎页面,而www.thefelpub.com会给我以前遇到的相同错误。IP仍然正常工作。所以问题是指向服务器的域名?您是如何配置dns设置的?你使用的是哪家托管公司?我使用的是指向数字云的namecheap。namescape的文档记录非常糟糕,但在digital cloud中,我被告知将名称服务器设置为custom,并将它们指向digital cloud的ns1.digitalocean.com、ns2.digitalocean.com和n3.digitalocean.com。数字云有一个将OfferPub.com指向ip的“A”,一个昵称为OfferPub.com的CNAME,以及在创建记录时预构建的三个N。您在settings.py中添加了ALLOWED_HOSTS=['ipaddress'、'OfferPub.com'、'www.offerPub.com',并重新启动了gunicorn?您需要重新启动gunicorn以获取对.py文件所做的任何更改是
ALLOWED_HOSTS=['ofelpub.com','www.ofelpub.com']
现在就在那里,我有
ALLOWED_HOSTS=['ofelpub.com','www.ofelpub.com']
并重新启动了nginx<代码>服务nginx停止然后
服务nginx启动
几次<代码>服务nginx重新启动。
ALLOWED_HOSTS = [*]