后处理Nginx反向代理响应的最佳方法

时间:2009-03-29 23:40:00

标签: nginx reverse-proxy

我正在研究如何在Apache后面切换到Nginx作为后端Grails应用程序前面的反向代理。我正在玩一些URL重写,并且遇到了从后端发回的响应的问题。我可以处理位置标题重写,但我想知道处理实际内容的最佳方法是链接等。

nginx_substitutions_filter是首选方法还是有人用来在响应正文中进行内容替换的另一个模块?

我已经考虑创建一个Grails插件来处理基于其他请求标头呈现正确内容的问题,但现在我认为最好在应用程序之外处理,以实现最大的灵活性和松耦合。

是否有关于针对反向代理方案进行URL重写/响应后处理的最佳实践的文章?

2 个答案:

答案 0 :(得分:2)

您可以使用Lua模块捕获响应并像Lua字符串一样操作它。愚蠢的例子大写输出:

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

请参阅http://wiki.nginx.org/HttpLuaModule#ngx.location.capture

答案 1 :(得分:0)

如果您只想更换标题,HeadersMore第三方模块非常适合。 除此之外,susbstiution模块似乎是唯一的选择。

但我建议你让后端返回正确的页面。修改每个响应都会占用资源并花费时间。