Лучший метод постобработки ответа обратного прокси Nginx - PullRequest
8 голосов
/ 30 марта 2009

Я провожу некоторые исследования по переключению с Apache на Nginx в качестве обратного прокси-сервера перед приложением Grails на сервере. Я играю с переписыванием URL-адреса и столкнулся с проблемой с ответом, возвращаемым с моего бэкенда. Я могу справиться с перезаписью заголовка местоположения, но мне интересно, как лучше всего обработать содержимое для ссылки и тому подобное.

Является ли nginx_substitutions_filter предпочтительным методом или есть другой модуль, который люди используют для замены содержимого в теле ответа?

Я думал о создании плагина Grails для обработки правильного содержимого на основе дополнительных заголовков запросов, но теперь я думаю, что лучше всего обрабатывать его вне приложения, чтобы обеспечить максимальную гибкость и слабую связь.

Существуют ли какие-либо статьи о передовых методах перезаписи URL / постобработки ответов для сценариев обратного прокси-сервера?

Ответы [ 2 ]

2 голосов
/ 31 января 2013

Вы можете использовать модуль Lua, чтобы захватить ответ и манипулировать им как строкой Lua. Глупый пример в верхнем регистре вывод:

res = ngx.location.capture('/some/path')
ngx.print(string.upper(res.body))

см. http://wiki.nginx.org/HttpLuaModule#ngx.location.capture

0 голосов
/ 31 марта 2012

Если вы хотите заменить только заголовки, сторонний модуль HeadersMore отлично подходит для этого. Кроме этого, модуль susbstiution кажется единственным вариантом.

Но я бы посоветовал вам сделать так, чтобы сервер вернул правильную страницу. Изменение каждого ответа требует ресурсов и занимает много времени.

...