我的服务器从443端口收到Https请求,我想根据域名转发到其他端口。这可行吗?如何实现?认证不在我的服务器中。
例如
request of https://aaa.com/ --- nginx ---> forward tcp packages to port 9001
request of https://bbb.com/ --- nginx ---> forward tcp packages to port 9002
这是nginx原生支持的东西!
您需要做的是为每个“上游”服务(:9001、:9002 等)创建一个新的
server { }
块,然后使用该服务器块内的proxy_pass
规则转发来自 的所有流量aaa.com
至 :9001
,或任何您的情况。
是这样的:
server {
listen 443;
listen [::]:443;
server_name aaa.com www.aaa.com;
location / {
proxy_pass http://localhost:9001;
}
# Set https certificate variables at some point too.
}
为
bbb.com
重复上面的块并换出proxy_pass
指向的位置。
有关更多信息,例如传递标头,请查看 NGINX 文章:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/