Apache 2.2.22 при запуске приложения Django показывает ошибку "клиент отклонен из-за конфигурации сервера"

У меня есть сервер Debian 7.1 amd64 с установленными apache httpd 2.2.22 и Python 2.7.3 для обслуживания приложения django, которое я подключил к apache, используя mod_wsgi и django по умолчанию wsgi.py скрипт. Django - это последняя версия 1.5.4 со всеми зависимостями пакета python в virtualenv, управляемой pip предоставляется с Debian.

Я побежал 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 error. И журнал ошибок apache для этого виртуального хоста содержит такие строки:

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

Это отлично работает для других клиентов. Что могло пойти не так?

1 ответ

Решение

Эта ошибка исходит от mod_evasive модуль Apache.

Я установил apache mod_evasive для защиты от DoS, и я не знал, что, просто установив этот модуль, он влияет на apache, и конфигурация по умолчанию (не существующая) для этого модуля довольно агрессивна для современных сервисных веб-приложений.

я создал /etc/apache2/mods-available/mod-evasive.conf в качестве конфигурации по умолчанию для этого модуля с более высокими пределами и проблема решена.

Другие вопросы по тегам