小编ber*_*tes的帖子

不允许使用Nginx的主机避免Django的500错误

我在生产网站上使用Django 1.5.1,但由于不允许主机请求,我有大量500的报告.我的网站的Nginx vhost配置如下:

server {
    listen 80;
    server_name mywebsite.com.br;

    location / {
        uwsgi_pass unix:/opt/project/run/brmed_web.sock;
        include uwsgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

我将允许的主机设置设置settings.py为:

ALLOWED_HOSTS = ['mywebsite.com.br']
Run Code Online (Sandbox Code Playgroud)

即使它使用我允许的主机完美地工作,我仍然收到以下奇怪主机的错误:

Traceback (most recent call last):

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

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

  File "/usr/local/lib/python2.7/dist-packages/django/http/request.py", line 72, in get_host
    "Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host)

SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): 108.166.113.25
Run Code Online (Sandbox Code Playgroud)

一些主机,如果不是全部主机,显然是恶意的,因为他们的请求试图欺骗一些PHP的东西.有关其中一个主机的更多详细信息,请参见此链接. …

django nginx

4
推荐指数
1
解决办法
4646
查看次数

标签 统计

django ×1

nginx ×1