#apache #nginx #wsgi #content_type
Доброе время суток. Есть Trac, есть необходимость поменять страницу списка проектов с простого html на xml. Этому xml будет назначен xsl шаблон, тут проблемы нет. Шаблон написан, все замечательно генерится, но возникает проблема в том, что trac рендерит ответ таким вот образом: req.send(output, 'text/html'). Каким образом можно поменять этот content-type на text/xml? Иначе браузер не применяет xsl преобразование, нужен text/xml. Перед апачем стоит nginx, который делает proxy_pass на апач. Поменять content-type надо фактически только для одного пути, а именно /trac. Кусок httpd.conf: WSGIScriptAlias /trac d:/web/trac/apache/trac.wsgiWSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all Кусок nginx.conf server { location /trac { proxy_pass http://127.0.0.1:8090/trac; } } Куда копать? ЗЫ в трак лезть совсем нет желания. ЗЗЫ Зачем такой изврат? Ну вот так фишка легла, связки-связки-связки...
Ответы
Ответ 1
Решил в nginx'е. server { location = /trac/ { proxy_pass http://127.0.0.1:8090/trac/; proxy_hide_header Content-Type; add_header Content-Type text/xml; } location /trac/ { proxy_pass http://127.0.0.1:8090/trac/; } } ЗЫ Полдня мучился.Ответ 2
Чтобы переопределить тип содержимого, официальная документация Nginx рекомендует воспользоваться комбинацией директив types и default_type. location /trac/ { types { } default_type application/xml; } https://nginx.org/r/types/ru
Комментариев нет:
Отправить комментарий