gpt4 book ai didi

python - 调试 Apache/Django/WSGI 错误请求 (400) 错误

转载 作者:IT老高 更新时间:2023-10-28 20:20:54 25 4
gpt4 key购买 nike

我的简单 Django 应用程序在 Debug模式下运行良好(manage.py runserver),并且在我的开发箱上的 WSGI+Apache 下运行,但是当我推送到 EC2 时,我开始收到间歇性(10- 80% 的时间)我尝试查看的任何 URL 的 Bad Request (400) 错误(无论是在我的应用程序中还是在 Django 管理员中。

在哪里可以找到有关此的调试信息? /var/log/apache2/error.log 中没有任何内容,即使使用 LogLevel=info。我检查了版本,记录了 Request 环境(参见 ModWSGI Debugging Tips ),没有发现重大差异。

我剩下的一个想法是,我正在使用基于 Python 2.7.1 构建的 Ubuntu 12.04 (libapache2-mod-wsgi 3.3-4build1) 的 mod_wsgi;我有 Python 2.7.3。而 Django 是 1.6,比 Ubuntu Precise 版本更新。我犹豫是否要从源代码开始构建包,因为清理起来非常困难,而且这些看起来像是次要的版本更改......

感谢您的帮助。

(供引用,这里是 Apache 配置和 WSGI 应用)

Apache 配置(000-默认)

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
WSGIScriptAlias /rz /usr/local/share/rz/rz.wsgi
...

rz.WSGI 应用程序

import os
import sys
import django.core.handlers.wsgi
import pprint

path = '/usr/local/share/rz'
if path not in sys.path:
sys.path.insert(0, path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'rz.settings'

class LoggingMiddleware:
def __init__(self, application):
self.__application = application

def __call__(self, environ, start_response):
errors = environ['wsgi.errors']
pprint.pprint(('REQUEST', environ), stream=errors)

def _start_response(status, headers, *args):
pprint.pprint(('RESPONSE', status, headers), stream=errors)
return start_response(status, headers, *args)

return self.__application(environ, _start_response)

application = LoggingMiddleware(django.core.handlers.wsgi.WSGIHandler())

最佳答案

像这样将 ALLOWED_HOSTS 设置添加到您的 settings.py...

ALLOWED_HOSTS = [
'.example.com', # Allow domain and subdomains
'.example.com.', # Also allow FQDN and subdomains
]

我遇到了同样的问题并找到了答案 here in the docs

更新:django 1.6 文档不再在线,我更新了链接以转到 django 1.7 文档的 ALLOWED_HOSTS 设置。

关于python - 调试 Apache/Django/WSGI 错误请求 (400) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com