运行 Django 应用程序的 Apache 2.2.22 显示错误“服务器配置拒绝客户端”

运行 Django 应用程序的 Apache 2.2.22 显示错误“服务器配置拒绝客户端”

我有一台安装了 apache httpd 2.2.22 和 Python 2.7.3 的 Debian 7.1 amd64 服务器,用于为 django 应用程序提供服务,我已使用 mod_wsgi 和默认 django 脚本将其挂接到 apache。Django是最新的 1.5.4 版本,所有 python 包依赖项都位于由debian 提供的wsgi.py虚拟环境中。pip

我已经chown -R www-data:www-data在整个 django 和 python virtualenv 目录上运行它以使其工作。此虚拟主机的 Apache 配置非常简单,并遵循官方 django 指南https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/

我设法让它工作了,但有些客户端会得到 apache(不是 django)403 Forbidden 错误页面。此虚拟主机的 apache 错误日志文件包含如下行:

[client x.x.x.x] client denied by server configuration: /path/to/django/wsgi.py

对于其他客户端来说,它运行得非常好。可能出了什么问题?

答案1

该错误来自mod_evasiveapache 模块。

我已经安装了 apache mod_evasive 来进行 DoS 保护,但我不知道仅仅安装这个模块就会影响 apache,而在 Debian 中,这个模块的默认(不存在)配置对于现代基于服务的 Web 应用程序来说是相当激进的。

/etc/apache2/mods-available/mod-evasive.conf为该模块创建了一个默认配置,具有更高的限制并解决了问题。

相关内容