高性能Web服務(wù)器Nginx實戰(zhàn)入門—虛擬主機

虛擬主機
虛擬主機,就是把一臺物理服務(wù)器劃分成多個“虛擬”的服務(wù)器,這樣我們的一臺物理服務(wù)器就可以當(dāng)做多個服務(wù)器來使用,從而可以配置多個網(wǎng)站。
Nginx提供虛擬主機的功能,就是為了讓我們不需要安裝多個Nginx,就可以運行多個域名不同的網(wǎng)站。
Nginx下,一個server標(biāo)簽就是一個虛擬主機。nginx的虛擬主機就是通過nginx.conf中server節(jié)點指定的,想要設(shè)置多個虛擬主機,配置多個server節(jié)點即可;
例如:www.meituan.com?切換城市,可以看到不同的城市地址不一樣(二級域名)
比如一個公司有多個二級域名,沒有必要為每個二級域名都提供一臺Nginx服務(wù)器,就可以使用虛擬主機技術(shù),在一臺nginx服務(wù)器上,模擬多個虛擬服務(wù)器。
視頻觀看~~~戳??????

配置虛擬主機方式
基于端口的虛擬主機(了解)
基于端口的虛擬主機配置,使用端口來區(qū)分
瀏覽器使用?同一個域名+端口?或?同一個ip地址+端口訪問;
server {
????listen 8080;
???? server_name www.myweb.com;
???? location /myweb {
???????????? proxy_pass http://www.myweb.com;
???? }
}
server {
???? listen 9090;
???? server_name www.myweb.com;
???? location /p2p {
??????????? proxy_pass http://www.p2p.com;
???? }
}
基于域名的虛擬主機(掌握)
基于域名的虛擬主機是最常見的一種虛擬主機
server {
????????listen ??????80;
????????server_name ?www.myweb.com;
????????location /myweb {
???????????proxy_pass http://www. myweb.com;
????????}
}
server {
????????listen ??????80;
????????server_name ?www.p2p.com;
????????location /myweb {
???????????proxy_pass http://www.p2p.com;
????????}
}
需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts
在hosts文件配置:
192.168.208.128 www.myweb.com
192.168.208.128 www.p2p.com
前面是Linux的IP,后面是你自定義的域名
虛擬主機案例,模擬城市站點網(wǎng)站(我們配置三個城市站點)
架構(gòu)圖

實現(xiàn)步驟
(1)配置3個Tomcat,每個Tomcat一個站點項目
部署在Tomcat的ROOT目錄下,目的是訪問的時候不用加上下文根,測試方便
拷貝一個新的tomcat9300?

修改tomcat9300的端口號(修改server.xml文件)



在Xshell中開啟三個選項卡,分別操作三個tomcat

清空三個tomcat的webapps/ROOT目錄



使用Xftp將三個war包上傳到三個tomcat的ROOT目錄
beijing.war上傳到tomcat9100服務(wù)器上

nanjing.war上傳到tomcat9200服務(wù)器上

tianjin.war上傳到tomcat9300服務(wù)器上

在tomcat啟動前,使用unzip命令,直接解壓三個war包,否則tomcat啟動的時候,自動解壓,還是有一個上下文目錄的

在tomcat9200和9300上執(zhí)行相同的操作
啟動三個tomcat

在瀏覽器中直接訪問tomcat進(jìn)行測試



(2)在nginx.conf中配置3個Nginx虛擬主機
方式一:直接在nginx.conf中配置
在nginx.conf文件添加三個server節(jié)點,用于配置三個虛擬主機
server {
???????? listen ??????80;
????????server_name ?beijing.myweb.com;
???? ????location / {
???????? ????proxy_pass http://beijing.myweb.com;
???????? }
}
server {
???????? listen ??????80;
????????server_name ?nanjing.myweb.com;
???? ????location / {
???????? ????proxy_pass http://nanjing.myweb.com;
????????}
}
server {
???????? listen ??????80;
???????? server_name ?tianjin.myweb.com;
???????? location / {
???????????? proxy_pass http://tianjin.myweb.com;
????????}
}

方式二:通過單獨的配置文件配置虛擬主機
通過include的方式引入虛擬主機配置
include /usr/local/nginx/conf/vhost/vhost.conf;
將虛擬目錄的配置文件加入到”http {}”部分的末尾,與其他server并列;
文件是隔開的,配置更清晰,主文件沒有那么多是server
(3)在nginx.conf中配置每個虛擬主機請求轉(zhuǎn)發(fā)所對應(yīng)的后端服務(wù)器(負(fù)載均衡,可以配置多個服務(wù)器)
upstream beijing.myweb.com {
???????? server ?127.0.0.1:9100;
??? }
??? ?upstream nanjing.myweb.com {
???????? server ?127.0.0.1:9200;
???? }
???? upstream tianjin.myweb.com {
???????? server ?127.0.0.1:9300;
???? }

(4)修改hosts文件,讓Linux的ip指向到三個站點的域名
C:\Windows\System32\drivers\etc\hosts
192.168.235.128 beijing.myweb.com
192.168.235.128 nanjing.myweb.com
192.168.235.128 tianjin.myweb.com
(5)重啟nginx,通過瀏覽器訪問nginx進(jìn)行測試




(6)通過單獨的配置文件配置虛擬主機,然后再nginx.conf中引入(參照步驟2的方式二)
在/usr/local/nginx/conf目錄下,創(chuàng)建vhost目錄,并創(chuàng)建vhost.conf文件,在其中配置虛擬主機信息

在nginx.conf中引入上面的配置文件

最后,奉上Nginx視頻教程,視頻學(xué)習(xí)效果更佳,走過路過別忘素質(zhì)三連哦~~

