前面講了如何安裝配置Nginx,你們能夠去這裏看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.htmlhtml
今天要說的是Nginx如何配置虛擬主機。nginx
須要說明的是:因爲本文章是nginx系列文章中的一篇,文章裏面不少其餘的配置,可能前面的文章已經說講過,而後後續就沒有在介紹,若是出現有些配置沒有講,你們可能須要去看看前面的文章。web
虛擬主機是一種特殊的軟硬件技術,它能夠將網絡上的每一臺計算機分紅多個虛擬主機,每一個虛擬主機能夠獨立對外提供www服務,這樣就能夠實現一臺主機對外提供多個web服務,每一個虛擬主機之間是獨立的,互不影響的。服務器
以下圖:網絡
經過nginx能夠實現虛擬主機的配置,nginx支持三種類型的虛擬主機配置:app
一、基於ip的虛擬主機測試
二、基於域名的虛擬主機網站
三、基於端口的虛擬主機spa
實際使用的過程當中,咱們通常經常使用的是用域名或是端口來區分web服務。只不過我這裏爲了講的全面一點,會把三種配置都講一講。 操作系統
nginx的配置文件結構以下:
...... events { ....... } http{ ....... server{ ....... } server{ ....... } }
每一個server就是一個虛擬主機。
Linux操做系統容許添加IP別名,就是在一塊物理網卡上綁定多個lP地址。這樣就可以在使用單一網卡的同一個服務器上運行多個基於IP的虛擬主機。
一臺nginx服務器綁定兩個ip:192.168.78.13二、192.168.78.133,訪問不一樣的ip請求不一樣的html目錄,即:
訪問http://192.168.78.132將訪問html132目錄下的html網頁
訪問http://192.168.78.133將訪問html133目錄下的html網頁
建立192.168.78.132 的虛擬機,保證本地電腦和虛擬網絡通暢。
在192.168.78.132上安裝nginx。這個以前講過nginx 的源碼安裝,你們能夠去看看這篇文章:https://www.cnblogs.com/zhangweizhong/p/11378512.html
一、修改網絡配置文件,進入到/etc/sysconfig/network-scripts
,編輯ifcfg-ens33
文件以下:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # BOOTPROTO=dhcp 注意區別!!! DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=26c2f3f8-62c5-4571-80e2-ca394cfd43da DEVICE=ens33 ONBOOT=yes ZONE=public # 注意區別 IPADDR0=192.168.78.132 PREFIX0=24 IPADDR1=192.168.78.133 PREFIX1=16
二、保存修改,重啓網絡: systemctl restart network
[root@bogon network-scripts]# systemctl restart network
這個是參照網上的資料,不明白的能夠去這裏看看具體如何操做:https://blog.csdn.net/u013887008/article/details/79589656
進入/usr/local/nginx 目錄,將原來nginx的html目錄拷貝兩個目錄 「html132」和「html133」,爲了方便測試須要修改每一個目錄下的index.html內容使之個性化。
cd /usr/local/nginx cp -r html html132 cp -r html html133
修改/usr/local/nginx/conf/nginx.conf文件,添加兩個虛擬主機,以下:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #配置虛擬主機192.168.78.132 server { #監聽的ip和端口,配置192.168.78.132:80 listen 80; #虛擬主機名稱這裏配置ip地址 server_name 192.168.78.132; #全部的請求都以/開始,全部的請求均可以匹配此location location / { #使用root指令指定虛擬主機目錄即網頁存放目錄 #好比訪問http://ip/test.html將找到/usr/local/html3/test.html #好比訪問http://ip/item/test.html將找到/usr/local/html3/item/test.html root /usr/local/nginx/html132; #指定歡迎頁面,按從左到右順序查找 index index.html index.htm; } } #配置虛擬主機192.168.78.133 server { listen 80; server_name 192.168.78.133; location / { root /usr/local/nginx/html133; index index.html index.htm; } } }
從新啓動nginx,觀察端口監聽狀態:
以上,就把nginx 基於ip的配置虛擬主機講完了。後面會繼續講基於域名和端口的配置。
原文出處:https://www.cnblogs.com/zhangweizhong/p/11378542.html