首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略[Django]错误(外部IP):内部服务器错误

忽略[Django]错误(外部IP):内部服务器错误
EN

Stack Overflow用户
提问于 2013-09-13 01:14:01
回答 2查看 1.8K关注 0票数 3

我已经正确地设置了我的ALLOWED_HOSTS,但是我不断地收到来自所有类型站点的请求,这些站点导致发送'Django错误(外部IP):内部服务器错误‘。

我怎么能忽略这个特定的错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-13 06:01:18

当Django的SuspiciousOperation http头与所需的ALLOWED_HOSTS设置不匹配时,会在Host:ALLOWED_HOSTS中引发Host:异常。此异常不被特别处理,因此错误通过日志记录系统传播。

您可以使用lborgav的答案以不同的方式转移所有错误消息,但是如果您只想捕获这一错误,则可以设计一个自定义中间件。

下面的代码片段是一个中间件类,您可以将它添加到settings.py中的MIDDLEWARE_CLASSES中,以消除此错误。

代码语言:javascript
运行
复制
MIDDLEWARE_CLASSES = [
    'myapp.middleware.SquashInvalidHostMiddleware',
    ....
]

必须在django.middleware.common.CommonMiddleware之前发生,因为您希望检测错误条件的存在,并在进展到将生成异常的CommonMiddleware之前立即返回响应。

代码语言:javascript
运行
复制
# myapp/middleware/__init__.py

from django.core.exceptions import SuspiciousOperation
from django.views.defaults import server_error


class SquashInvalidHostMiddleware(object):
    """
    Middleware class to squash errors due to suspicious Host: headers.
    """

    def process_request(self, request):
        """
        Check for denied Hosts.
        """

        try:
            # Attempt to obtain Host: from http header.  This may elicit a
            # SuspiciousOperation if Host: doesn't match ALLOWED_HOSTS.
            # Unceremoniously squash these errors to prevent log emails,
            # diverting straight to 500 page.

            request.get_host()
        except SuspiciousOperation:
            return server_error(request)
票数 5
EN

Stack Overflow用户

发布于 2013-09-13 05:06:01

在日志记录配置中,可以重写处理程序类。

代码语言:javascript
运行
复制
'handlers': {
    'mail_admins': {
    'level': 'ERROR',
    'class': 'django.utils.log.MyAdminEmailHandler',
    'include_html': True,
    }
},

现在您可以编写类MyAdminEmailHandler。检查AdminEmailHandler中的代码

在emit函数中,只需去掉报告if (request.META.get('REMOTE_ADDR')不在settings.INTERNAL_IPS中)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18776709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档