nginx - 将请求标头变量作为查询参数传递给上游 URL

Tah*_*een 5 nginx nginx-reverse-proxy nginx-config

我有一个应用程序在 localhost 上运行,监听端口 8080

nginx 作为反向代理运行,监听端口 80

因此,在端口 80 上发送到 nginx 的请求将发送到此应用程序,该应用程序侦听 localhost:8080 并将此应用程序的响应发送回用户

现在这个应用程序无法从请求头中读取头变量,只能读取查询参数

所以我希望 nginx 将标头值作为查询参数传递给这个监听 localhost:8080 的应用程序

例如,让我们说在请求标头中有一个名为“userid”的自定义变量。

我们如何将此用户 ID 作为 &userid=value 附加到 url 传递给在 localhost 8080 上侦听的应用程序

我当前的站点可用和站点启用的测试文件是

server {

    location /test {

        proxy_pass http://localhost:8080;
    }

}
Run Code Online (Sandbox Code Playgroud)

Tah*_*een 4

所以不需要重写或者其他任何事情。只需将要作为查询参数传递到本地主机应用程序的标头参数通过附加到参数来传递,如下所示。

如果您有自定义标头参数(例如 userid),那么它将是 $http_userid

server {

    location /test {

          set $args $args&host=$http_host;

          proxy_pass http://localhost:8080;
    }
 }
Run Code Online (Sandbox Code Playgroud)