我相信这应该是一个容易找到的问题,但我一生都找不到答案。我正在尝试设置代理标头,并且尝试了以下方法:
location / {
access_by_lua '
ngx.header["ZZZZ"] = zzzzz
proxy_pass http://127.0.0.1:8888;
';
Run Code Online (Sandbox Code Playgroud)
或者
location / {
access_by_lua '
ngx.proxy_set_header["ZZZZ"] = zzzzz
proxy_pass http://127.0.0.1:8888;
';
Run Code Online (Sandbox Code Playgroud)
设置代理标头的正确方法是什么?
谢谢你
要设置或清除发送到 proxy_pass 的标头,您可以使用以下命令
要设置标题,请使用
ngx.req.set_header(header_name, value)
Run Code Online (Sandbox Code Playgroud)
要清除标题,请使用
ngx.req.clear_header(header)
Run Code Online (Sandbox Code Playgroud)
要清除所有标头,您可以编写
for header, _ in pairs(ngx.req.get_headers()) do
ngx.req.clear_header(header)
end
Run Code Online (Sandbox Code Playgroud)
现在要回答您的问题,您可以使用
location / {
access_by_lua_block {
ngx.req.set_header("ZZZZ", zzzzz)
}
proxy_pass http://127.0.0.1:8888;
}
Run Code Online (Sandbox Code Playgroud)
确保将其写入access_by_lua或rewrite_by_lua。