nginx能同时反向代理到两个不同协议的地址吗?
upstream abc.http{
server 1.2.3.4:8080
}
upstream abc.https{
server 1.2.3.5:8443
}
server {
listen 443 ssl;
server_name localhost;
location / {
proxy_pass http://abc.http;
}
listen 443 ssl;
server_name localhost;
location / {
proxy_pass https://abc.https;
}
}
反向代理的本质是 nginx 收到客户端请求后、按照特定配置构造一个新的 HTTP 请求、发送给真正的后端、接收到响应后、再原样返回给客户端。
那么请问你,你 nginx 发送了两个 HTTP 请求给两个后端,它要怎么返回给客户端时变成一个响应的?
如果你真的有这种“聚合”的需要,你需要的是 kong 之类的 API Gateway,而不是简单的 nginx。
另外你题目描述的就很奇怪,究竟是什么场景下需要客户端发送一个请求、能收到两个响应的?我感觉是你应该描述一下实际需求,而不是自己瞎琢磨一个解决方案出来问行不行。