2017-09-03 69 views
0

这些线程有几个,但它们都不能解决我的问题。我有一个服务器托管一个网站,如果你通过IP地址直接通过网站工作,但是我买了一个DNS,我试图将DNS重定向到IP。我正在使用django 1.11.4(当前的pip安装版本)。设置了我所有的DNS服务器后,我可以ping服务器,但如果我去我的DNS一个浏览器,键入我收到此错误:Django/Nginx DisallowedHost标题错误

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尝试(包括'*'),每次尝试到达时都会得到相同的错误。

+1

您是否在添加'ALLOWED_HOSTS = ['*']'后重新启动django? –

+0

是的,我每次尝试更改ALLOWED_HOSTS后重新启动nginx – baneofalltrades

+0

重新启动gunicorn而不是nginx以使更改生效 – deaspo

回答

0

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

+0

我还没有加密它,因为我无法取得DNS指向它。这是下一个任务,这让我失望。我加了 'server_name example.com www.example.com;' 并改变了我的服务器名称的例子,但是现在如果我输入thefelpub.com我得到了nginx的欢迎页面,www.thefelpub.com给了我相同的我以前有过错误。 IP仍然正常工作。 – baneofalltrades

+0

所以问题是指向服务器的域名?你如何配置DNS设置?您正在使用哪个托管公司? – deaspo

1

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

ALLOWED_HOSTS = ['thefelpub.com'] 

,或者不推荐:

ALLOWED_HOSTS = [*] 
+0

此外,您需要在nginx可用站点中提供相同的域名以将给定的答案添加到您的查询中的.py – deaspo

+0

我已经试过: ALLOWED_HOSTS = [ 'thefelpub.com'] 我也试过: ALLOWED_HOSTS = [ '*'] 无论工作过。后面的代码中有: ALLOWED_HOSTS = ip_addresses() 我不太确定这是否会导致任何问题,或者不是(它被Django放在那里) – baneofalltrades

+0

@deaspo我只是一直在为现在24小时,所以我仍然是小菜鸟。我如何在nginx中提供域名? – baneofalltrades