Nginx實戰(一) 虛擬主機

樑桂釗發表於2016-10-18

Nginx實戰系列目錄

利用虛擬主機,不同為每個要執行的網站提供一臺單獨的Nginx伺服器或單獨執行一組Nginx程式。虛擬主機提供了在同一臺伺服器、同一組Nginx程式上執行多個網站的功能。

在Nginx配置檔案nginx.conf中,一個最簡化的虛擬主機配置程式碼如下

server {
  listen       80;
  server_name  localhost;
  access_log  logs/host.access.log  main;
  location / {
     root   html;
     index  index.html index.htm;
  }
}

基於IP的虛擬主機

可以在一塊物理網路卡上繫結多個lP地址。這樣就能夠在使用單一網路卡的同一個伺服器上執行多個基於IP的虛擬主機。設定IP別名也非常容易,只須配置系統上的網路介面,讓它監聽額外的lP地址。

server {
    listen      192.168.204.131:80;
    server_name example.org www.example.lianggzone.com;
    root /data/www;
}

server {
    listen      192.168.204.132:80;
    server_name example.net www.example.lianggzone.com;
    root /data/bbs;
}

基於域名的虛擬主機

基於域名的虛擬主機是最常見的一種虛擬主機。只需配置你的DNS伺服器,將每個主機名對映到正確的lP地址,然後配置Nginx伺服器,令其識別不同的主機名就可以了。這種虛擬主機技術,使很多虛擬主機可以共享同一個lP地址,有效解決了lP地址不足的問題。所以,如果沒有特殊要求使你必須用一個基於lP的虛擬主機,最好還是使用基於域名的虛擬主機。
編輯/etc/hosts加入虛擬域名以便解析。

cat /etc/hosts

編輯內容如下

127.0.0.1 www.blog.lianggzone.com www.bbs.lianggzone.com

修改Nginx配置檔案nginx.conf,新增虛擬域名支援

server {
    listen      80;
    server_name www.blog.lianggzone.com;
    location / {
      root   /usr/local/dev/nginx/page;
      index  index.html;
    }
}

server {
    listen      80;
    server_name www.bbs.lianggzone.com;
    location / {
      root   /usr/local/dev/nginx/page;
      index  index2.html;
    }
}

基於埠的虛擬主機

基於埠的虛擬主機配置,使用埠來區分,瀏覽器使用域名或ip地址:埠號訪問。

server {
    listen 8080;
    server_name www.blog.lianggzone.com;
    root /usr/local/dev/nginx/page;
}

server {
    listen 9090;
    server_name www.bbs.lianggzone.com;
    root /usr/local/dev/nginx/page;
}

相關文章