相关疑难解决方法(0)

如何使用nginx通过proxy_pass转发查询字符串参数?

upstream apache {
   server 127.0.0.1:8080;
}
server{
   location ~* ^/service/(.*)$ {
      proxy_pass http://apache/$1;
      proxy_redirect off;
   }
 }
Run Code Online (Sandbox Code Playgroud)

上面的代码片段会将url包含字符串"service"的请求重定向到另一台服务器,但它不包含查询参数.

parameters nginx

103
推荐指数
5
解决办法
15万
查看次数

Nginx 在没有上游的情况下保持活动状态

我使用一个变量来定义我的 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)

nginx proxypass

6
推荐指数
0
解决办法
780
查看次数

Nginx proxy_pass 带有变量和重定向

当 proxy_pass 设置为变量时,Nginx 似乎不支持重定向。有没有办法实现此功能,例如以某种方式链接服务器或其他解决方法?不支持这个的原因是什么?

.conf 是:

proxy_pass $var;
proxy_redirect  default;
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

nginx:[emerg]“proxy_redirect default”不能与带有变量的“proxy_pass”指令一起使用

nginx

5
推荐指数
1
解决办法
5709
查看次数

Nginx proxy_pass指令字符串插值

我在Kubernetes上运行Nginx.

当我使用以下proxy_pass指令时,它按预期工作:

proxy_pass "http://service-1.default";
Run Code Online (Sandbox Code Playgroud)

但是以下不起作用:

set $service "service-1";
proxy_pass "http://$service.default";
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说 no resolver defined to resolve service-1.default

据我所知proxy_pass,收到完全相同的字符串,为什么它表现不同?

我需要使用变量,因为我正在使用正则表达式从URL动态获取服务名称.

interpolation nginx kubernetes

3
推荐指数
1
解决办法
1945
查看次数

标签 统计

nginx ×4

interpolation ×1

kubernetes ×1

parameters ×1

proxypass ×1