最近剛好有網友詢問 Nginx Virtual Host 相關設定,那我就直接記錄一下設定方式。Virtual Host 主要的作用在於使用同一台 HTTP Server 架設多個站台,其實就是市面上常見的「虛擬主機」。技術上是透過多重 Domain Name 指向同一個 IP 來達成,然而對於 HTTP Server 則會透過 HTTP Request Header 中的 Host 來識別要派送到那一台機器,封包如下:
Nginx 設定 Virtual Host 的方式蠻簡單的,我們依照 Ubuntu 慣例將設定檔放在 /etc/nginx/sites-available/ 目錄中,再將設定檔案透過 ln 建立 link 到 /etc/nginx/sites-enabled/。如果是 RedHat, CentOS 設定檔案直接在 /etc/nginx/conf.d/ 即可。我們先規劃兩個站台分別為 vh1.toright.com 與 vh2.toright.com。設定檔如下:
/etc/nginx/sites-enabled/vh-1
server { listen 80; root /var/www/html/vh1; index index.html index.htm; server_name vh1.toright.com; location / { try_files $uri $uri/ =404; } }
/etc/nginx/sites-enabled/vh-2
server { listen 80; root /var/www/html/vh2; index index.html index.htm; server_name vh2.toright.com; location / { try_files $uri $uri/ =404; } }
建立好設定檔後透過以下命令重新啟動 nginx
sudo service nginx restart
查一下我們要測試的 Domain 是指向同一個 IP Address,如下:
然後開啟瀏覽器分別進入這兩個網域:
成功囉,下次見!
3 comments for “Nginx Virtual Host 設定教學”