nginx配置虛擬主機(jī)的詳細(xì)步驟
虛擬主機(jī)使用的是特殊的軟硬件技術(shù),它把一臺(tái)運(yùn)行在因特網(wǎng)上的服務(wù)器主機(jī)分成一臺(tái)臺(tái)“虛擬”的主機(jī),每臺(tái)虛擬主機(jī)都可以是一個(gè)獨(dú)立的網(wǎng)站,可以具有獨(dú)立的域名,具有完整的Intemet服務(wù)器功能(WWW、FTP、Email等),同一臺(tái)主機(jī)上的虛擬主機(jī)之間是完全獨(dú)立的。從網(wǎng)站訪(fǎng)問(wèn)者來(lái)看,每一臺(tái)虛擬主機(jī)和一臺(tái)獨(dú)立的主機(jī)完全一樣。

利用虛擬主機(jī),不用為每個(gè)要運(yùn)行的網(wǎng)站提供一臺(tái)單獨(dú)的Nginx服務(wù)器或單獨(dú)運(yùn)行一組Nginx進(jìn)程。虛擬主機(jī)提供了在同一臺(tái)服務(wù)器、同一組Nginx進(jìn)程上運(yùn)行多個(gè)網(wǎng)站的功能。
配置虛擬主機(jī)有三種方法:
- 基于域名的虛擬主機(jī) : 不同的域名、相同的IP(此方式應(yīng)用最廣泛)
- 基于端口的虛擬主機(jī) : 不使用域名、IP來(lái)區(qū)分不同站點(diǎn)的內(nèi)容,而是用不同的TCP端口號(hào)
- 基于IP地址的虛擬主機(jī) : 不同的域名、不同的IP ( 需要加網(wǎng)絡(luò)接口 ,應(yīng)用的不廣泛) 基于IP地址

方式一:多網(wǎng)卡多IP
兩個(gè)物理網(wǎng)卡,兩個(gè)IP
# 兩張物理網(wǎng)卡ens32和ens34
[root@nginx network-scripts]# ifconfig ens32 | awk 'NR==2 {print $2}'
192.168.126.41
[root@nginx network-scripts]# ifconfig ens34 | awk 'NR==2 {print $2}'
192.168.126.42
編輯配置文件,基于每個(gè)IP創(chuàng)建一個(gè)虛擬主機(jī)
# 為防止 /etc/nginx/conf.d/default.conf 配置文件影響,對(duì)其進(jìn)行重命名
[root@nginx ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default
[root@nginx ~]# vim /etc/nginx/conf.d/ip.conf
# ens32網(wǎng)卡對(duì)應(yīng)的虛擬主機(jī)
server {
listen 192.168.126.41:80;
location / {
root /ip_ens32;
index index.html;
}
}
# ens34 網(wǎng)卡對(duì)應(yīng)的虛擬主機(jī)
server {
listen 192.168.126.42:80;
location / {
root /ip_ens34;
index index.html;
}
}
創(chuàng)建虛擬主機(jī)的網(wǎng)頁(yè)文件目錄及文件
[root@nginx ~]# mkdir /ip_ens32 [root@nginx ~]# mkdir /ip_ens34 [root@nginx ~]# echo "ens32" > /ip_ens32/index.html [root@nginx ~]# echo "ens34" > /ip_ens34/index.html
檢查配置文件的語(yǔ)法
[root@nginx ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
重載nginx服務(wù)
[root@nginx ~]# systemctl reload nginx
測(cè)試
[root@nginx ~]# curl 192.168.126.41 ens32 [root@nginx ~]# curl 192.168.126.42 ens34


方式二:?jiǎn)尉W(wǎng)卡多IP
為一個(gè)物理網(wǎng)卡配置多個(gè)ip
ip addr add IP/MASK dev 網(wǎng)卡名 # 刪除 ip addr del IP/MASK dev 網(wǎng)卡名
其余步驟同上面多網(wǎng)卡多IP的配置
基于端口

多使用于公司內(nèi)部,無(wú)法使用域名或沒(méi)有域名時(shí)
配置
[root@nginx ~]# vim /etc/nginx/conf.d/port.conf
server {
listen 81;
location / {
root /port_81;
index index.html;
}
}
server {
listen 82;
location / {
root /port_82;
index index.html;
}
}
[root@nginx ~]# mkdir /port_{81..82}
[root@nginx ~]# echo "81" > /port_81/index.html
[root@nginx ~]# echo "82" > /port_82/index.html
[root@nginx ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nginx ~]# systemctl reload nginx
測(cè)試
[root@nginx ~]# curl 192.168.126.41:81 81 [root@nginx ~]# curl 192.168.126.41:82 82


基于域名

配置
一般一個(gè)域名對(duì)應(yīng)一個(gè)配置文件,便于管理
[root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.conf
server {
listen 80;
server_name test1.dxk.com;
location / {
root /test1;
index index.html;
}
}
[root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.conf
server {
listen 80;
server_name test2.dxk.com;
location / {
root /test2;
index index.html;
}
}
[root@nginx ~]# mkdir /test{1..2}
[root@nginx ~]# echo "test1" > /test1/index.html
[root@nginx ~]# echo "test2" > /test2/index.html
[root@nginx ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nginx ~]# systemctl reload nginx
測(cè)試
# 配置域名解析 [root@nginx ~]# echo -e "192.168.126.41 test1.dxk.com\n192.168.126.41 test2.dxk.com" >> /etc/hosts [root@nginx ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.126.41 test1.dxk.com 192.168.126.41 test2.dxk.com [root@nginx ~]# curl test1.dxk.com test1 [root@nginx ~]# curl test2.dxk.com test2



這里有個(gè)問(wèn)題:
如果在配置域名解析時(shí)由于寫(xiě)錯(cuò)了,那么訪(fǎng)問(wèn)該錯(cuò)誤域名(未配置該錯(cuò)誤域名的虛擬主機(jī))時(shí)竟然還會(huì)返回網(wǎng)頁(yè)內(nèi)容。
[root@nginx ~]# vim /etc/hosts 192.168.126.41 test1.dxk.com 192.168.126.41 test3.dxk.com # 這里本應(yīng)該是 test2.dxk.com ,但是由于寫(xiě)錯(cuò)了,而且對(duì)應(yīng)test3.dxk.com域名的虛擬主機(jī)并不存在
訪(fǎng)問(wèn)該錯(cuò)誤域名
[root@nginx ~]# curl test3.dxk.com test1 # 可以看到,還是會(huì)返回網(wǎng)頁(yè)信息
因?yàn)樵谂渲糜蛎馕鰰r(shí),雖然域名寫(xiě)錯(cuò)了,但是IP是對(duì)的,那么此時(shí)服務(wù)端默認(rèn)會(huì)返回滿(mǎn)足是該IP且端口為80的排在第一個(gè)的虛擬主機(jī)的網(wǎng)頁(yè)信息給客戶(hù)端
[root@nginx ~]# ll /etc/nginx/conf.d/ -rw-r--r--. 1 root root 112 Jul 3 21:23 test1.dxk.com.conf -rw-r--r--. 1 root root 112 Jul 3 21:22 test2.dxk.com.conf
這是需要注意的
到此這篇關(guān)于nginx虛擬主機(jī)的文章就介紹到這了,更多相關(guān)nginx虛擬主機(jī)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Nginx實(shí)現(xiàn)三種常見(jiàn)的虛擬主機(jī)配置方法
- Nginx多虛擬主機(jī)配置小結(jié)
- nginx基于IP的多虛擬主機(jī)實(shí)現(xiàn)
- Nginx虛擬主機(jī)的配置實(shí)現(xiàn)
- Apache和Nginx實(shí)現(xiàn)虛擬主機(jī)的3種方式小結(jié)
- Nginx虛擬主機(jī)的六種配置(最全)
- Nginx虛擬主機(jī)的配置步驟過(guò)程全解
- 關(guān)于Nginx中虛擬主機(jī)的一些冷門(mén)知識(shí)小結(jié)
- Nginx虛擬主機(jī)的搭建的實(shí)現(xiàn)步驟
- 深入淺析Nginx虛擬主機(jī)
- Ubuntu中Nginx虛擬主機(jī)設(shè)置的項(xiàng)目實(shí)踐
相關(guān)文章
Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)圖片的代碼示例
這篇文章主要給大家介紹了nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)圖片,文章通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2023-10-10
nginx worker進(jìn)程循環(huán)的實(shí)現(xiàn)
這篇文章主要介紹了nginx worker進(jìn)程循環(huán)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Nginx實(shí)現(xiàn)高并發(fā)的項(xiàng)目實(shí)踐
本文主要介紹了Nginx實(shí)現(xiàn)高并發(fā)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Nginx設(shè)置響應(yīng)超時(shí)配置的實(shí)現(xiàn)
本文詳細(xì)介紹了如何查找和修改Nginx的配置文件,包括全局配置文件、站點(diǎn)配置文件、包含文件的查找,以及客戶(hù)端超時(shí)設(shè)置、代理超時(shí)設(shè)置、FastCGI超時(shí)設(shè)置的修改方法,最后還介紹了如何在Linux系統(tǒng)中重啟Nginx服務(wù),通過(guò)這些步驟,可以有效提高Nginx的性能和穩(wěn)定性2024-10-10
Nginx隱藏版本號(hào)與網(wǎng)頁(yè)緩存時(shí)間的方法
這篇文章主要介紹了Nginx優(yōu)化之隱藏版本號(hào)與網(wǎng)頁(yè)緩存時(shí)間的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Nginx如何配置加密證書(shū)訪(fǎng)問(wèn)實(shí)現(xiàn)
本文主要介紹了Nginx如何配置加密證書(shū)訪(fǎng)問(wèn)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

