在實際環境中單臺Nginx WEB服務器同時會配置N個網站,也可稱之爲配置N個虛擬域名的主機,即多個域名對應同一個80端 口。 每一個虛擬主機能夠是一個獨立網站、能夠具備獨立域名,同一臺物理機上面的虛擬主機相互之間是獨立。
虛擬主機的類型
基於IP的虛擬主機html
能夠在一塊物理網卡上綁定多個IP地址。這樣就可以在使用單一網卡的同一個服務器上運行多個基於IP的虛擬主 機。設置IP別名也很是容易,只須配置系統上的網絡接口,讓它監聽額外的IP地址。
基於端口的虛擬主機
基於端口的虛擬主機配置,使用端口來區分,瀏覽器使用域名或ip地址:端口號訪問。
基於域名的虛擬主機
基於域名的虛擬主機是最多見的一種虛擬主機。只需配置你的DNS服務器,將每一個主機名映射到正確的IP地址,然 後配置Nginx服務器,令其識別不一樣的主機名就能夠了。這種虛擬主機技術,使不少虛擬主機能夠共享同一個IP地 址,有效解決了IP地址不足的問題。因此,若是沒有特殊要求使你必須用一個基於IP的虛擬主機,最好仍是使用基 於域名的虛擬主機。nginx
nginx.conf 配置文件默認配置塊瀏覽器
nginx 默認配置塊 配置的括號都是成對出現,丟失會報錯。緩存
events {} #內核的參數服務器
http {} #http 網站配置參數,能夠嵌套多個server,配置代理,緩存,日誌定義等絕大多數功能和第三方模塊的 配置 網絡
server {} #被包含在http段中,用來配置虛擬主機,每個server段表明一個虛擬主機 app
location {} #被包含在server段中,用來匹配域名請求和調用第三方模塊測試
upstream {} #被包含在http段中,轉發的配網站
配置基於域名的虛擬主機3d
(1)配置nginx 配置文件(每一個配置項後面都有一個;號,不可丟失,不然報錯)
[root@localhost conf]# cat nginx.conf worker_connections 1024; } include mime.types; default_type application/octet-stream; '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; keepalive_timeout 65; server { #被包含在http段中,用來配置虛擬主機,每個server段表明一個虛擬主機 listen 80; #端口 server_name www.test1.com; #域名,能夠配置多個 access_log logs/test1.com.log main; #網站日誌 root html/test1; #用來存儲網站網頁 index index.html index.htm; #網站默認打開的索引頁(首頁) } } server { listen 80; server_name www.test2.com; access_log logs/test2.com.log main; root html/test2; index index.html index.htm; } |
檢查nginx 配置文件是否正確
/usr/local/nginx/sbin/nginx -t
(2)建立www.test1.com和www.test2.com網頁訪問目錄
[root@localhost nginx]# mkdir /usr/local/nginx/html/test{1,2}
[root@localhost nginx]# echo "www.test1.com" > /usr/local/nginx/html/test1/index.html
[root@localhost nginx]# echo "www.test2.com" > /usr/local/nginx/html/test2/index.html
(3)從新啓動nginx
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -s reload
(4)將主機映射寫入hosts文件
(5)Windows測試訪問