讓我們一起探討如何在Apache和Nginx上配置多個網站託管。
相較於共用託管,在雲伺服器上託管網站提供了更大的彈性。您可以安裝任何您需要的軟體,根據需求進行擴展或縮減,並進行配置以獲得更好的效能和成本優化。
如果您有多個業務網站,但又不想將它們分開託管,您可以利用Web伺服器的虛擬主機功能。讓我們來看看這個情境。
假設我擁有以下兩個網站,並且希望將它們指向我的同一個雲端虛擬機。
在實施之前,讓我們先了解其運作原理。
在單一Web伺服器實例上託管多個網站的概念稱為虛擬主機。它與URL一起在設定檔中定義。當向定義的URL發出請求時,Web伺服器將會從相應的文檔根目錄提供內容。
在Apache中設定虛擬主機以託管多個網域
- 登入Apache HTTP伺服器。
- 前往Apache設定檔所在位置。(在預設安裝中,您會在/etc/httpd/conf/httpd.conf找到它)
- 備份 httpd.conf 文件。
- 創建一個VirtualHost容器,就像我為兩個網域所做的那樣。
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /opt/htdocs/lab ServerName lab.techblik.com.com ErrorLog logs/lab.techblik.com.com-error_log CustomLog logs/lab.techblik.com.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /opt/htdocs/gf-dev ServerName gf.dev ErrorLog logs/gf.dev-error_log CustomLog logs/gf.dev-access_log common </VirtualHost>
注意:請根據您的需求修改ServerAdmin、DocumentRoot、ServerName、ErrorLog、CustomLog的值。
- 重新啟動Apache HTTP並測試這兩個URL。
在Nginx中設定虛擬主機以託管多個網域
- 登入Nginx伺服器。
- 前往您安裝Nginx的位置。(在預設位置,您會在/etc/nginx/找到它)
有多種方法可以實現這一目標。您可以修改nginx.conf檔案,或修改自訂檔案(如果有的話)。您也可以在conf.d資料夾下創建一個custom.conf。如果您修改現有檔案,請選擇適合您的並進行備份。
- 為這兩個URL創建一個伺服器區塊,如下所示。
server { listen 80; root /opt/htdocs/lab; index index.html index.htm; server_name lab.techblik.com.com; location / { try_files $uri $uri/ =404; } } server { listen 80; root /opt/htdocs/gf-dev; index index.html index.htm; server_name gf.dev; location / { try_files $uri $uri/ =404; } }
注意:請根據您的需求修改root和server_name的值。
- 重新啟動Nginx並測試這兩個URL。
別忘了更新您的URL的DNS記錄,以對應到伺服器IP。完成後,您應該可以存取透過上述設定提供的URL。
結論
這是在單一Web伺服器實例(如Apache或Nginx)中託管多個網域的快速指南。一旦您的網站上線,請不要忘記針對安全漏洞對其進行測試。
喜歡這篇文章嗎?何不與大家分享?