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

1070
zaadeh

У меня есть сервер Debian 7.1 amd64 с установленными apache httpd 2.2.22 и Python 2.7.3 для обслуживания приложения django, которое я подключил к apache с помощью mod_wsgi и wsgi.pyсценария django по умолчанию . 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 

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

0

1 ответ на вопрос

0
zaadeh

Эта ошибка происходит из mod_evasiveмодуля Apache.

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

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