nginx - nginx - 将请求标头变量作为查询参数传递给上游 URL
问题描述
我有一个在 localhost 上运行的应用程序,监听端口 8080
nginx 作为反向代理运行,监听 80 端口
因此,在端口 80 上到达 nginx 的请求被发送到在 localhost:8080 上侦听的此应用程序,并将此应用程序的响应发送回用户
现在此应用程序无法从请求标头中读取标头变量,只能读取查询参数
所以我希望 nginx 将标头值作为查询参数传递给这个在 localhost:8080 上监听的应用程序
例如,让我们在请求标头中有一个名为“userid”的自定义变量。
我们如何将此用户 ID 作为附加到 url 的 &userid=value 传递给在 localhost 8080 上侦听的应用程序
我当前的站点可用和站点启用测试文件是
server {
location /test {
proxy_pass http://localhost:8080;
}
}
解决方案
所以没有必要进行重写或其他任何事情。只需将要作为查询参数传递的标头参数传递给 localhost 应用程序,如下所示,通过附加到参数。
如果您有自定义标头参数,如 userid,那么它将是 $http_userid
server {
location /test {
set $args $args&host=$http_host;
proxy_pass http://localhost:8080;
}
}
推荐阅读
- reactjs - 使用 react-native-print 时如何设置 HTML 样式
- jquery - $('#dlg').dialog('close') 不适用于简单的 JSP 页面
- python - 列表到熊猫字典?
- ios - 如何为 iOS 项目设置 GitLab CI
- c# - Asp Net Core 2.2 项目不能使用类核心库目标 2.2
- php - 如何让用户上传文件到服务器
- python - python中的属性错误。对象没有属性
- spring - 如何将 websocket 与移动应用程序连接?
- java - 通过页面搜索使用的资源并删除它们
- javascript - 防止将重复值从文本框添加到列表框