Webserver

僅使用一個子域重定向到 NAT 或橋接網路中的服務

  • January 23, 2014

我有一個子域(dyndns)。xyz.dyndns.com (fe)

我的問題從這裡開始:

  • 我有一個用於虛擬化的伺服器。
  • 在伺服器上,我有多個虛擬機,可以通過 https 獲得不同的 Web 服務。
  • 我的路由器配置了 xyz.dyndns.com
  • 虛擬機可以通過 NAT 訪問或橋接到路由器

如何訪問 VM_1 和 VM_2 的 WebService,例如:

https://xyz.dyndns.com/vm_1_webservice

https://xyz.dyndns.com/vm_2_webservice

因為我需要向路由器添加重定向規則。

我知道通過橋接虛擬機,我可以簡單地將 http 重定向到路由器上的虛擬機。

在我的本地網路中,我使用 DNAT (iptables) 配置了任何東西。

即當我訪問 localhost(server):40001(port) fe 時,我將被重定向到 VM_1 的 WebService,該 WebService 可通過 SSL 訪問。喜歡:

https://127.0.0.1:40001/vm_1_webservice

效果很好。如何繼續?(在主機上使用 nginx 或 apache?)

典型的方法是在路由器/交換機上設置一個網路伺服器,例如 Nginx 或 Apache,或者讓路由器/交換機將埠 80 和 443 重定向到執行 Nginx 或 Apache 的內部主機。

一旦設置了流量以將其傳遞到 Web 伺服器,您就可以在 Web 伺服器中設置虛擬主機,它可以將流量路由到適當的 vm1_webservice、vm2_webservice 等。

Nginx

我將向您展示 1 種基本的 Nginx 方法,但是一旦您了解了它的工作原理,您就可以非常詳細地使用這些規則。還可以查看本教程,標題為:如何 nginx 處理請求,該教程展示瞭如何配置 Nginx 以在單個埠 80/443 上為多個站點提供服務。

server {
 server_name www.example.com
 location / {
   proxy_pass http://localhost:4567/;
 }
}

server {
 server_name www.example2.com
 location {
   proxy_pass http://localhost:4568/;
 }
}

例如,您將更改 proxy_pass 行以匹配您的 vm1_webservice 正在執行的任何埠@主機。

引用自:https://unix.stackexchange.com/questions/110513