我正在研究如何在Apache后面切换到Nginx作为后端Grails应用程序前面的反向代理。我正在玩一些URL重写,并且遇到了从后端发回的响应的问题。我可以处理位置标题重写,但我想知道处理实际内容的最佳方法是链接等。
nginx_substitutions_filter是首选方法还是有人用来在响应正文中进行内容替换的另一个模块?
我已经考虑创建一个Grails插件来处理基于其他请求标头呈现正确内容的问题,但现在我认为最好在应用程序之外处理,以实现最大的灵活性和松耦合。
是否有关于针对反向代理方案进行URL重写/响应后处理的最佳实践的文章?
答案 0 :(得分:2)
您可以使用Lua模块捕获响应并像Lua字符串一样操作它。愚蠢的例子大写输出:
res = ngx.location.capture('/some/path')
ngx.print(string.upper(res.body))
答案 1 :(得分:0)
如果您只想更换标题,HeadersMore第三方模块非常适合。 除此之外,susbstiution模块似乎是唯一的选择。
但我建议你让后端返回正确的页面。修改每个响应都会占用资源并花费时间。