2013-11-26 46 views

回答

2

我發現該解決方案使用lua而不是subs_filters。在nginx的配置文件中添加以下指令

set $a mysourcestr; 
set $b mydeststr; 
body_filter_by_lua_file /path/lua/scripts/subs.lua; 

然後我寫了一個Lua中很簡單的

#!/usr/bin/lua 
-- /path/lua/scripts/subs.lua 
response_body = ngx.arg[1] 
response_body = response_body:gsub(ngx.var.mysourcestr,ngx.var.mydeststr) 
ngx.arg[1]=response_body 
+0

如果響應屍體被分塊,這可能無法正常工作。在這種情況下,您需要將整個響應保留在內存中(根本不推薦)或使用流式正則表達式替換。 –