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
в качестве конфигурации по умолчанию для этого модуля с более высокими пределами и проблема решена.