我有一堆临时域,如下所示:
app1.dummydomain.com app2.dummydomain.com app3.dummydomain.com ...
这些应用程序可能驻留在具有不同 IP 的不同服务器上。
现在我想把所有这些应用程序放在同一个反向代理后面,并给它们每个一个真正的域名,比如
www.myapp1.com www.myapp2.com www.myapp3.com ...
当用户浏览器打开上述任何域时,请求(https)首先转到代理,然后代理智能地将请求转发到正确的网站。
实现这一目标的最佳方法是什么?
答案1
使用 NGINX 可以轻松完成此操作,但您需要记住,所有流量都将通过反向代理,因此确实会对该机器产生一些要求。将 SSL 卸载到反向代理也是相当常见的做法,这会将加密负载转移到反向代理。
这是 NGINX 反向代理功能的官方文档:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
但本质上它可以归结为最简单的形式:
server {
listen 80;
listen [::]:80;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://someother.server.org:8000;
}
}
您需要添加一些内容来处理,例如传递请求、处理 SSL/TLS 等。另外要记住的是,如果不是所有站点都被转发到同一个地方,您将需要为每个进入的站点提供一个服务器块。