fbpx

Nginx Virtual Host 設定教學

nginx-logo最近剛好有網友詢問 Nginx Virtual Host 相關設定,那我就直接記錄一下設定方式。Virtual Host 主要的作用在於使用同一台 HTTP Server 架設多個站台,其實就是市面上常見的「虛擬主機」。技術上是透過多重 Domain Name 指向同一個 IP 來達成,然而對於 HTTP Server 則會透過 HTTP Request Header 中的 Host 來識別要派送到那一台機器,封包如下:

host-header

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,如下:

vh-ip

然後開啟瀏覽器分別進入這兩個網域:

nginx-vh

成功囉,下次見!

  3 comments for “Nginx Virtual Host 設定教學

發佈留言