【发布时间】:2022-02-04 12:38:21
【问题描述】:
我想让 Nginx 充当后端服务的反向代理,但是到后端服务的连接本身必须通过另一个代理:
[nginx] -> [HTTP proxy] -> [backend service]
Nginx 似乎没有办法配置传出连接通过代理(例如,http_proxy 环境变量被忽略)。
但这可能就足够了:
-
将
proxy_pass目标设置为 HTTP 代理服务器地址。 -
说服 Nginx 将完整的目标 URL 发送到代理,如
GET http://backend/path/etc而不是GET /path/etc。
我试过了:
rewrite ^/prefix/(.*) http://backend/$1 break;
proxy_pass http://proxy;
几乎可以工作,但rewrite 的行为是,如果替换以http:// 开头,它会停止处理并发出重定向。 (Code here)。
【问题讨论】: