nginx - 带有 URL 重写和 proxy_pass 的 Nginx 转发
问题描述
我在将请求转发到另一个域时寻求 nginx 配置方面的帮助。
代理场景:
https://service1.com/downloads -> https://service2.com/app/downloads
https://service1.com/downloads?param1=a¶m2=b -> https://service2.com/app/downloads?param1=a¶m2=b
浏览器应该一直有左侧 URL(service1)。但服务 2 端点不同,它有额外的参数“应用程序”。
我在没有考虑使用以下配置的服务 2 端点中的“app”参数的情况下做到了这一点:
location /downloads {
set $upstream_endpoint https://service2.com;
proxy_pass $upstream_endpoint;
}
但是当我想在调用 service2 端点时附加一些附加参数('app')时,我需要帮助。
我正在尝试 rewrite 和 proxy_pass 但没有运气。我已启用上游日志,但没有看到预期的上游 URL
location /downloads {
set $upstream_endpoint https://service2.com;
proxy_pass $upstream_endpoint/app/$args;
}
提前致谢
解决方案
尝试这个,
location /downloads {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass https://service2.com;
}
推荐阅读
- c++ - 是否可以使用联合成员作为对象存储?
- helmet.js - 头盔js中的内容安全策略
- java - 我可以使用spring boot和MySQL设置过期时间吗?
- html - 如何检查html中的空字符串
- r - 在 R 中“分隔”一列的更简洁的选项(可能通过一些正则表达式)?
- asp.net - asp.net core 版本 5 样板正在生产中
- python - n维数组元素的Python组合
- logging - 如何在 Jupyterlab 中登录到日志控制台?
- php - 使用 Bash 并调用 php 命令遍历目录和子目录中的所有文件
- firebase - 当我以这种方式通过本机反应将日期存储在firebase中时,它不会保存,只有购物车项目和总金额仅保存在firebase中