Nginx

將許多網站放在反向代理後面

  • April 28, 2020

我有一堆臨時域,如下所示:

app1.dummydomain.com app2.dummydomain.com app3.dummydomain.com ...

這些應用程序可能駐留在具有不同 IP 的不同伺服器上。

現在我想把所有這些應用程序放在同一個反向代理後面,並給它們每個真正的域,比如

www.myapp1.com www.myapp2.com www.myapp3.com ...

當使用者瀏覽器打開上述任何一個域時,請求(https)首先到達代理,然後代理智能地將請求轉發到正確的網站。

實現這一目標的最佳方法是什麼?

使用 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 等。要記住的另一件事是,您需要為每個進入的站點設置一個伺服器塊,如果它們沒有全部被轉發到同一個地方。

引用自:https://serverfault.com/questions/1014526