首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx -将请求头部变量作为查询参数传递给上游URL

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

Stack Overflow用户
提问于 2019-03-03 10:43:22
回答 2查看 3.1K关注 0票数 5

我有一个应用程序在本地主机上运行,监听端口8080

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

因此,一个到达端口80上的nginx的请求被发送到这个监听localhost:8080的应用程序,并且来自这个应用程序的响应被发送回用户

现在,该应用程序不能从请求标头中读取标头变量,只能读取查询参数

因此,我希望nginx将标题值作为查询参数传递给这个在localhost:8080上侦听的应用程序

例如,假设在请求头部中有一个名为“userid”的自定义变量。

如何将此userid作为附加到url的&userid=value传递给在localhost8080上侦听的应用程序

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

代码语言:javascript
复制
server {

    location /test {

        proxy_pass http://localhost:8080;
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-04 11:37:59

因此,不需要重写或做任何其他事情。只需将您想要作为查询参数传递给localhost应用程序的头参数传递给本地主机应用程序,如下所示,方法是附加到参数。

如果您有像userid这样的自定义头参数,那么它应该是$http_userid

代码语言:javascript
复制
server {

    location /test {

          set $args $args&host=$http_host;

          proxy_pass http://localhost:8080;
    }
 }
票数 4
EN

Stack Overflow用户

发布于 2019-03-03 18:16:18

如果你有一个名为userid的请求头,它将在一个名为$http_userid的Nginx变量中可用。

您可以使用rewrite...break语句修改原始请求的查询参数。

例如:

代码语言:javascript
复制
location /test {
    rewrite ^(.*)$ $1?userid=$http_userid break;
    proxy_pass http://localhost:8080;
}

详情请参见this document

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54965093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档