
我在生产网站上使用Django 1.5.1,但由于不允许主机请求,所以我的报表数量很多。 我的网站的Nginx虚拟主机configuration如下:
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的东西。 关于其中一个主机的更多细节可以在这个链接中find。
使用mod_wsgi在Apache上使用Django时,必须重新启动Apache
在Nginx + Gunicorn + Django堆栈上解决网站缓慢问题
在MS windows上安装Django,manage.py“无法导入Django”
Django + uwsgi + Nginxredirect到默认页面“欢迎使用Nginx”
什么是gunicorn.sock?
我的问题是,我错过了Nginxconfiguration,这些奇怪的主机允许这些请求传递? 仅供参考,我的Nginx只有这个configuration文件和它的默认configuration文件。
跨子域分割Django项目
如何在Django开发服务器运行时使用unix命令? (图片提供)
在Django上减less用户cpu时间
Django 301和403在我的静态文件在生产中禁止错误
在Facebook的canvas应用程序显示空白的iframe
这取决于你的默认配置,但是从serverFault上的这个答案你必须在Nginx中定义一个默认的虚拟主机,否则它将使用默认的第一个虚拟主机。
基本上,你的配置应该是这样的,只允许“mywebsite.com.br”的请求通过:
server { Listen 80 default_server; location / { # or show another site return 403 "ForbIDden"; } } server { Listen 80; server_name mywebsite.com.br; location / { uwsgi_pass unix:/opt/project/run/brmed_web.sock; include uwsgi_params; } }
如果您还需要提供其他子域名(www.mywebsite.com.br等),则可以将server_name设置为“.mywebsite.com.br”。
总结以上是内存溢出为你收集整理的使用Nginx避免Django 500的错误全部内容,希望文章能够帮你解决使用Nginx避免Django 500的错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)