[英]Django Bad Request(400) Error in Deployment with Apache/NginX
我正試圖在Debug=False
模式下在VPS上午餐。 Debug=True
工作正常,但當我將其更改為false時,我收到此錯誤。 我正在使用Apache來渲染python頁面,使用Nginx來提供我的靜態文件。 我嘗試使用這個[回答]: 調試Apache / Django / WSGI錯誤請求(400)錯誤,但它至少對我不起作用。 這是我的wsgi配置:
#wsgi.py
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
path = '/var/www/example'
if path not in sys.path:
sys.path.append(path)
我還在下面的代碼中添加了以下代碼:
ALLOWED_HOSTS = [
'.example.com', # Allow domain and subdomains
'.example.com.', # Also allow FQDN and subdomains
]
要發現您的問題,首先在settings.py
中將ALLOWED_HOSTS
暫時settings.py
為:
ALLOWED_HOSTS = '*'
然后在view
某個位置,嘗試打印並查看此命令的輸出:
print(request.META['HTTP_HOST']) # or print(request.get_host())
然后根據輸出,將它(只是它的域作為列表)設置為ALLOWED_HOSTS
。
筆記:
使用ALLOWED_HOSTS = '*'
可能有安全問題,請在此處閱讀。
每次更改后,您都需要重新啟動服務(apache / nginx)。
我的西里爾字母域也遇到了同樣的問題。
我已經將我的域的punicode表示添加到ALLOWED_HOSTS,這解決了問題。
也許這應該作為一個bug發送到Django,但我沒有深入研究(這可能是我的托管配置的問題),只是ab(當然還有瀏覽器)。 這個問題對我來說也是斷斷續續的(通常比下面用ab顯示的更糟)。
沒有punicode
完成請求:20個請求失敗:3
與punicode
完成請求:20個請求失敗:0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.