У меня есть сервер 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 ответ1

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .