gpt4 book ai didi

nginx - 在 Nginx 上使用 Lua 重定向到相同的 URL(openresty 设置)

转载 作者:行者123 更新时间:2023-12-03 15:01:00 26 4
gpt4 key购买 nike

我正在寻找修改请求 header 并在 Lua 中重定向它,我试过了

 ngx.redirect("/")

 ngx.exec("/")

但我收到以下错误:

attempt to call ngx.redirect after sending out the headers

在 Lua 中是否有一种简单的方法来添加 header 值并将其重定向到其他地方?在文档中我没有找到任何合适的指令,有没有办法在仍然使用 content_by_lua_file 的同时完成这样的事情?

我正在使用 openresty。

最佳答案

来自redirect method documentation :

Note that this method call terminates the processing of the current request and that it must be called before ngx.send_headers or explicit response body outputs by either ngx.print or ngx.say.

因此请检查或使用其他请求阶段处理程序,例如 rewrite_by_lua

至于设置标题,使用ngx.header

例如:

location /testRedirect {
content_by_lua '
ngx.header["My-header"]= "foo"
return ngx.redirect("http://www.google.com")
';
}

curl http://127.0.0.1/testRedirect

输出:

HTTP/1.1 302 Moved Temporarily
Server: openresty
Date: Tue, 30 Jun 2015 17:34:38 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
My-header: foo
Location: http://www.google.com

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

注意:大多数网站不会接受来自重定向的自定义 header ,因此请考虑在这种情况下使用 cookie。

关于nginx - 在 Nginx 上使用 Lua 重定向到相同的 URL(openresty 设置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com