Linux
在具有 2 個 IP 的同一系統上託管 Nginx 和 Apache
我的伺服器擁有兩個 IP 192.168.1.90 和 192.168.1.99 我希望 nginx 在 192.168.1.99 和 Apache 在 192.168.1.90 上偵聽我還需要在 apache 上託管多個虛擬主機。
嘗試將 apache 的 ports.conf 修改為
NameVirtualHost 192.168.1.90:80 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
然後我在 apache 中託管了一個虛擬主機
<VirtualHost 192.168.1.90:80> DocumentRoot /home/webmaster/www/thefactor/ ServerName www.XYZ.com ServerAlias XYZ.cu.com # Other directives here </VirtualHost>
問題在於所有流量,所有請求都來自 192.168.1.90,無論域名載入 XYZ.com。即:如果我將 ABC.com 指向 192.168.1.90,那麼當我瀏覽到它時,它會載入 XYZ.com 頁面,但地址欄中的地址將保持 ABC.com,因此它不是重定向。
知道為什麼會這樣
您定義的第一個虛擬主機將是“預設”主機。因此,對未在其他地方配置的域的所有請求都將轉到該第一台主機。
如果您希望對未在伺服器上配置但仍指向它的域的請求被忽略,您需要創建一個單獨的“擷取所有”虛擬虛擬主機,它只會拒絕所有請求,並且在 othosts 之前列出。
<VirtualHost 192.168.1.90:80> #Dummy Host denies all accesses. Order Allow, Deny Deny from all </VirtualHost> <VirtualHost 192.168.1.90:80> DocumentRoot /home/webmaster/www/thefactor/ ServerName www.XYZ.com ServerAlias XYZ.cu.com # Other directives here </VirtualHost>