0
有沒有辦法使用變量作爲源字符串進行響應(正文)重寫? 我試過惠特nginx_substitutions_filter,但它不起作用。nginx nginx_substitutions_filter變量
set $a mysourcestr;
subs_filter $a mydeststr;
有沒有辦法使用變量作爲源字符串進行響應(正文)重寫? 我試過惠特nginx_substitutions_filter,但它不起作用。nginx nginx_substitutions_filter變量
set $a mysourcestr;
subs_filter $a mydeststr;
我發現該解決方案使用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
如果響應屍體被分塊,這可能無法正常工作。在這種情況下,您需要將整個響應保留在內存中(根本不推薦)或使用流式正則表達式替換。 –