前面講了如何安裝配置Nginx,今天要說的是Nginx如何基于域名配置虛拟主機。
需要說明的是:由于本文章是nginx系列文章中的一篇,文章裡面很多其他的配置,可能前面的文章已經說講過,然後後續就沒有在介紹,如果出現有些配置沒有講,大家可能需要去看看前面的文章。
一、應用場景
我們知道,Nginx支援通過端口号的方式将多個Web系統部署在統一伺服器;然後,IP位址和端口号的方式比較難記。一般人們都是通過域名的形式通路Web系統。那麼Nginx如何通過域名配置虛拟主機呢?
Nginx同樣支援域名配置虛拟主機。例如,有兩個域名指向同一台nginx伺服器,使用者通路不同的域名顯示不同的網頁内容。
兩個域名是aaa.test.com和bbb.test.com,nginx伺服器使用虛拟機192.168.78.132
二、準備環境
1. 建立192.168.78.132虛拟機,保證本地電腦和虛拟網絡通暢。
2. 在192.168.78.132上安裝nginx。
3. 通過host檔案指定aaa.test.com和bbb.test.com對應192.168.78.132虛拟機:
修改window的hosts檔案:(C:\Windows\System32\drivers\etc)
192.168.78.132 aaa.test.com
192.168.78.132 bbb.test.com
三、建立Web系統
1. 在192.168.78.132上建立/usr/local/aaa_html,此目錄為aaa.test.com域名通路的目錄
2. 在192.168.78.132上建立/usr/local/bbb_html,此目錄為bbb.test.com域名通路的目錄
3. 将/usr/local/nginx/html中的内容拷貝分别拷貝到上邊兩個目錄中,為了友善測試需要修改每個目錄下的index.html内容使之個性化。
四、配置虛拟主機
修改/usr/local/nginx/conf/nginx.conf檔案,添加兩個虛拟主機,如下:
#配置虛拟主機aaa.test.com
server {
#監聽的ip和端口,配置本機ip和端口
listen 192.168.78.132:80;
#虛拟主機名稱是aaa.test.com,請求域名aaa.test.com的url将由此server配置解析
server_name aaa.test.com;
#所有的請求都以/開始,所有的請求都可以比對此location
location / {
#使用root指令指定虛拟主機目錄即網頁存放目錄
#比如通路http://ip/test.html将找到/usr/local/aaa_html/test.html
#比如通路http://ip/item/test.html将找到/usr/local/aaa_html/item/test.html
root /usr/local/aaa_html;
#指定歡迎頁面,按從左到右順序查找
index index.html index.htm;
}
}
#配置虛拟主機bbb.test.com
server {
listen 192.168.78.132:81;
server_name bbb.test.com;
location / {
root /usr/local/bbb_html;
index index.html index.htm;
}
}
上面我們配置了兩個域名,指向兩個Web系統。
五、驗證測試
分别通路aaa.test.com、bbb.test.com,看效果如何:

接下來,通路bbb.test.com,檢視浏覽器傳回頁面:
最後
以上, 就把nginx基于域名的虛拟主機配置說完了。通過這三篇文章,介紹了nginx配置虛拟主機的三種方式,分别是基于ip 的虛拟主機配置,基于端口的虛拟主機配置和基于域名的虛拟主機配置。
其中最常用的還是基于域名的虛拟主機配置。
這是系列課程,大家關注我的微信公衆号(架構師精進),随時交流。
推薦閱讀:
Nginx極簡實戰—Nginx伺服器高性能優化配置,輕松實作10萬并發通路量 Nginx極簡入門(三)基于端口的虛拟主機配置 Nginx極簡入門(二)配置基于ip的虛拟主機 Nginx極簡入門(一)如何在Linux系統編譯安裝Nginx服務