Я провожу личное исследование различий между часто используемыми веб-серверами. Я изо всех сил пытаюсь найти четкие ответы, когда дело доходит до конкретных функций и, что наиболее важно для меня: возможность переписать ответ тело на лету.
Сценарий: веб-сервер (apache, nginx, iis, varnish, haproxy) развернут как обратный прокси или прокси сервера приложений (например, nginx -> пассажира).
Вопрос: на каких веб-серверах и как можно переписать тело ответа. Замечание или два о простоте и производительности такой операции также были бы полезны.
Мое исследование:
Content rewritting:
Nginx: ngx_http_sub_module
Nginx: LUA body_filter: https://groups.google.com/forum/embed/#!topic/openresty-en/Gj-s_hARc84
Apache: mod_substitute
Apache: starting from 2.3 LUA can be used as a scripting language (and the response body rewriting with it is possible)
IIS: does not seem top be possible?
Varnish: possible, but hacky: https://github.com/aivarsk/libvmod-rewrite
HAproxy: not possible, although it might be possible with LUA in the future
Что еще я забыл? Спасибо.
В итоге получилась такая таблица:
**Nginx**: ngx_http_sub_module --> http://p.defau.lt/?A6UukYFKZrYLalJ5KOuTKg
**Nginx**: Nginx + lua. LUA body_filter --> http://p.defau.lt/?0ZxLWENoEkFIRD17QlEtbQ
**Apache**: Apache Module mod_substitute --> http://p.defau.lt/?IS8u2mnAQTSHs4qEl_MSFQ
**Apache**: As of version 2.3 LUA can be used as a scripting language for Apache. Response body rewriting is possible there as well. --> http://p.defau.lt/?tTAqWfA8sezQZkmvI3LnFw
**Varnish**: Possible, but hacky: https://github.com/aivarsk/libvmod-rewrite
**HAproxy**: Not possible. Might be possible with LUA in the future