String in Reverse-Proxy-HTTP-Anfrage mit Lua & nginx ersetzen
English
Deutsch
access_by_lua_block kann verwendet werden, um beliebige Strings in einer nginx-Anfrage zu ersetzen. Hinweis: Dies ersetzt in der Anfrage an den Reverse-Proxy, nicht in der Antwort vom Reverse-Proxy. Siehe HTTP-Antwortdaten in nginx mit Lua ersetzen für einen Lua-basierten Ansatz zum Ersetzen eines Strings in der Antwort.
access_by_lua.conf
access_by_lua_block {
ngx.req.read_body()
local body = ngx.req.get_body_data()
if body then
body = ngx.re.gsub(body, "string_to_replace", "string_by_which_to_replace")
end
ngx.req.set_body_data(body)
}Dies wird typischerweise in einem location {}-Block verwendet, sodass das Ersetzen nur erfolgt, wenn eine bestimmte Menge von URLs aufgerufen wird:
location_config.conf
location /config {
proxy_pass http://127.0.0.1:12345/;
proxy_set_header X-Forwarded-For $remote_addr;
access_by_lua_block {
ngx.req.read_body()
local body = ngx.req.get_body_data()
if body then
body = ngx.re.gsub(body, "myvar", "myothervar")
end
ngx.req.set_body_data(body)
}
}Check out similar posts by category:
Nginx
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow