Назад | Перейти на главную страницу

Проблема с Apache2 / mod_wsgi mod_headers

Я запускаю mod_wsgi на Ubuntu Server 12.04 с Django, но не могу заставить работать mod_headers. Я запустил заголовки a2enmod и получил ответ, что мне нужно перезапустить apache, чтобы он заработал, что я и сделал. Я добавил простую директиву, чтобы сервер включал фиктивный атрибут / значение заголовка в ответ на запрос, просто как тест, но он не обрабатывается. Нет никаких признаков этого из того, что я вижу на вкладке net в Firebug.

Доступ к файлу, который я запрашиваю на сервере, проходит успешно, и он возвращается в браузер без каких-либо проблем с правильным содержимым. У него просто нет этого дополнительного заголовка. Вот как выглядит мой файл / etc / apache2 / sites-available / DOMAIN (но с заменой DOMAIN моим фактическим доменом):

<VirtualHost *:80>
ServerAdmin root@DOMAIN
ServerName DOMAIN   

Alias /static/ /srv/project/app/webapp/static/
Alias /robots.txt /srv/project/app/webapp/site_media/robots.txt
Alias /favicon.ico /srv/project/app/webapp/site_media/favicon.ico

CustomLog "|/usr/sbin/rotatelogs /srv/project/logs/access.log.%Y%m%d-%H%M 60M" combined
ErrorLog "|/usr/sbin/rotatelogs /srv/project/logs/error.log.%Y%m%d-%H%M 60M"
LogLevel info

WSGIDaemonProcess DOMAIN user=rtf group=rtf processes=1 threads=15 maximum-requests=10000 python-path=/srv/project/venv/lib/python2.7/site-packages python-eggs=/srv/project/run/eggs
WSGIProcessGroup DOMAIN
WSGIScriptAlias / /srv/project/app/conf/apache/django.wsgi

<Directory /srv/project/app/webapp/site_media>
Order deny,allow
Allow from all
Options -Indexes FollowSymLinks
</Directory>

<Directory /srv/project/app/conf/apache>
Order deny,allow
Allow from all
</Directory>

Header set MyHeader "It took %D microseconds for Apache to serve this request."

</VirtualHost>

"MyHeader" выше не добавляется к ответу.

Я попытался установить mod_headers еще раз на случай, если в первый раз возникнут проблемы, о которых я не знал, но a2enmod сказал мне, что он уже установлен.

Кстати, то, что я в конечном итоге пытаюсь достичь, - это установить Content-Disposition на 'attachment' в возвращаемом заголовке запросов для определенных файлов, чтобы он запускал диалоговое окно сохранения как в браузере, когда GET выполняется для файлы, соответствующие определенному шаблону.

Кто-нибудь может подсказать, в чем может быть проблема?

У меня все заработало. Причина, по которой этого не было раньше, на самом деле не имела ничего общего с самой конфигурацией, а потому, что я получил только конфигурацию (указанную в вопросе), расположенную в / etc / apache2 / sites-available /

Итак, я добавил его в / etc / apache2 / sites-enabled /, и новые заголовки подбираются нормально. Как это бывает, форсирование Content-Disposition не влияет на браузер, то есть когда клиент делает запрос GET, который устанавливает Content-Disposition как вложение, браузер по-прежнему отказывается открывать диалоговое окно сохранения как.

Похоже, мне нужно будет динамически вставить гиперссылку на веб-страницу с установленным атрибутом загрузки и попытаться принудительно щелкнуть ссылку программно. Но это отдельная тема.