前面講了如何安裝配置Nginx,大家可以去這里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html
今天要說的是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
html目錄創建
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:80; server_name bbb.test.com; location / { root /usr/local/bbb_html; index index.html index.htm; } }
測試
分別訪問aaa.test.com、bbb.test.com,看效果如何:
最后
以上, 就把nginx基於域名的虛擬主機配置說完了。通過這三篇文章,介紹了nginx配置虛擬主機的三種方式,分別是基於ip 的虛擬主機配置,基於端口的虛擬主機配置和基於域名的虛擬主機配置。
其中最常用的還是基於域名的虛擬主機配置。