pal*_*tha 5 nginx url-rewriting openresty
我试图找出 nginx location 块中的 rewrite 语句与 location 块内的 set 变量语句之间的关系。为什么我问是因为以下两种情况下的不同行为
什么不起作用 - 由于未设置 url 而获取 http 500 - 当设置在重写语句之后*
location ~ ^/offer/ {
log_by_lua_file lua/datadog/api_latency.lua;
proxy_pass $url;
proxy_read_timeout 60;
rewrite ^((?U).*)(/?)$ $1 break;
set $location_name offer;
set $url https://example.com;
}
Run Code Online (Sandbox Code Playgroud)
什么有效- 当设置在重写语句之前
location ~ ^/offer/ {
log_by_lua_file lua/datadog/api_latency.lua;
proxy_pass $url;
proxy_read_timeout 60;
set $url https://example.com;
rewrite ^((?U).*)(/?)$ $1 break;
set $location_name offer;
}
Run Code Online (Sandbox Code Playgroud)
在 nginx 调试日志中,我可以看到设置变量在工作情况下执行,但在非工作情况下不执行。我在 nginx 文档中搜索过是否存在任何关系 - 我能得到的最好结果是,这两个都是在重写阶段执行的,但没有关于此行为原因的其他信息。
知道为什么会发生这种情况吗?
| 归档时间: |
|
| 查看次数: |
1224 次 |
| 最近记录: |