Apache-2.2

nginx 和 apache - 同一 IP 上的多個虛擬主機 - 正確配置

  • August 26, 2015

我正在嘗試在同一台機器上執行 nginx 作為 Apache 的反向代理,並從中為不同的網站提供服務。

我的問題是 - 是否可以僅將虛擬主機添加到 nginx 並讓它根據請求的主機自動將 url/主機名/路徑等傳遞給 Apache。

或者我是否需要為 nginx 和 Apache 中的每個站點(域)設置一個虛擬主機?

此外,此設置是否存在任何潛在問題?

我計劃在我的 nginx 配置中對每個域進行這樣的操作(Apache 在埠 8080 上執行):

   server {
           listen 80; 

           root /var/www/site1.com/;
           server_name site1.com; 

           location / {
                   try_files $uri $uri/ /index.php;
           }

           location ~ \.php$ {                
                   proxy_set_header X-Real-IP  $remote_addr;
                   proxy_set_header X-Forwarded-For $remote_addr;
                   proxy_set_header Host $host;
                   proxy_pass http://127.0.0.1:8080;
           }
   }

謝謝!

這個有可能。

在 Apache Web 伺服器上,您需要將所有文件儲存在預設虛擬主機上,以便可以通過http://IP_ADDRESS:PORT/hostname/path/訪問它

在 Nginx 伺服器上創建多個虛擬主機並添加一個 proy_pass 規則,如下所示。

A.com -> / 將代理轉發到 /a-com/ B.com -> / 將代理轉發到 /b-com/ C.com -> / 將代理轉發到 /c-com/

希望這對您有所幫助。

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