私は実稼働 Web サイトで 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;
}
}
そして、許可されたホスト設定を次のように設定しsettings.py
ました:
ALLOWED_HOSTS = ['mywebsite.com.br']
許可されたホストを使用して完全に動作しますが、見知らぬホストに対して次のようなエラーが発生し続けます。
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
一部のホストは、すべてではないにしても、明らかに悪意のあるものです。これらのホストのリクエストは、いくつかの PHP を使ってだまそうとしているからです。ホストの 1 つの詳細については、このリンクを参照してください。
私の質問は、これらの奇妙なホストでのこれらのリクエストの通過を許可している Nginx 構成に欠けているものは何ですか? 参考までに、私のNginxには、この構成ファイルとそのデフォルトの構成ファイルがあります。