2017-09-03 94 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