我使用一个变量来定义我的 proxy_pass 目标,与此答案类似,但在我的情况下,该值是从传入请求的查询参数中提取的,因此例如 /?url= http://example.com将被代理到example.com。由于 proxy_pass 参数是一个变量,因此我的配置中没有上游指令。代理工作正常。然而,连接在每次请求后都会关闭,我希望它们活着来分摊 TCP 握手。根据这些指示,这需要在上游指令中使用 keepalive 指令。如果没有上游指令,我该如何做到这一点?
这是我的完整配置:
server {
if ($arg_url ~ \/\/([^\/]*)) {
set $proxy_host $1;
}
if ($proxy_host = "") {
return 404;
}
resolver 8.8.8.8;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $proxy_host;
proxy_pass $arg_url;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |