Nginx

如何根據 Nginx 中的子域將代理反向代理到不同的地方?

  • March 31, 2020

我有多個子域,都指向一台機器和一個 IP 地址。在這台機器上,我想讓 nginx 充當反向代理,並且根據用於訪問機器的子域,我希望它反向代理到不同的伺服器。我見過的所有使用 nginx 作為反向代理的例子location,但據我所知,這僅適用於路徑,不適用於不同的子域。我怎樣才能達到我想要的?

除非我完全誤讀了您的問題:您只需為每個子域設置伺服器塊並為該子域的根定義正確的反向代理,即類似於以下內容:

server {
       server_name subdomain1.example.com;
       location / {
           proxy_pass       http://hostname1:port1;
       }
}
server {
       server_name subdomain2.example.com;
       location / {
           proxy_pass       http://hostname2:port2;
       }
}

幾乎相同的方式。

location /foo {
   rewrite ^/foo(.+)$ /$1 break;
   proxy_pass http://foo;
}

location /bar {
   rewrite ^/bar(.+)$ /$1 break;
   proxy_pass http://bar;
}

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