摘要:反向代理負(fù)載均衡虛擬主機(jī)配置通過(guò)本章你將學(xué)會(huì)利用配置多臺(tái)虛擬主機(jī),清楚代理服務(wù)器的作用,區(qū)分正向代理和反向代理的區(qū)別,搭建使用反向搭理和負(fù)載均衡,了解常用配置的說(shuō)明。最重要的是反向代理,負(fù)載均衡。
Nginx 反向代理 負(fù)載均衡 虛擬主機(jī)配置
通過(guò)本章你將學(xué)會(huì)利用Nginx配置多臺(tái)虛擬主機(jī),清楚代理服務(wù)器的作用,區(qū)分正向代理和反向代理的區(qū)別,搭建使用Nginx反向搭理和負(fù)載均衡,了解Nginx常用配置的說(shuō)明。即學(xué)即用,你還在等什么?一睹為快先了解Nginx的三大功能
Nginx 可以作為一臺(tái)http服務(wù)器。可以做網(wǎng)站靜態(tài)服務(wù)器,比如圖片服務(wù)器,高效,減輕服務(wù)器壓力。同時(shí)它也支持https服務(wù)。
Nginx 可以配置多臺(tái)虛擬主機(jī)??梢詫?shí)現(xiàn)在一臺(tái)服務(wù)器虛擬出多個(gè)網(wǎng)站效果,省錢。
Nginx 最重要的是反向代理,負(fù)載均衡。在服務(wù)器集群中,通過(guò)Nginx通過(guò)反向代理讓性能高的服務(wù)器分擔(dān)更多的負(fù)載,從而實(shí)現(xiàn)負(fù)載均衡的效果,利用率高。
效果圖:包含基于ip的虛擬主機(jī)測(cè)試,基于域名的虛擬主機(jī)測(cè)試,反向代理和負(fù)載均衡的測(cè)試
環(huán)境:CentOS 7 , nginx-1.13.6 ,
說(shuō)明:Nginx 反向代理和負(fù)載均衡的操作前提都是基于域名的虛擬主機(jī)。不同的tomcat模擬不同的服務(wù)器,和生產(chǎn)環(huán)境最大的區(qū)別就是ip和port
Nginx 安裝:http://www.cnblogs.com/itdrag...
Nginx http服務(wù)器:http://www.cnblogs.com/itdrag...
虛擬主機(jī)是一種特殊的軟硬件技術(shù),它可以將網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī)分成多個(gè)虛擬主機(jī),每個(gè)虛擬主機(jī)都可以獨(dú)立對(duì)外提供www服務(wù)。從而實(shí)現(xiàn)一臺(tái)主機(jī)能對(duì)外提供多個(gè)web服務(wù),而且每個(gè)虛擬主機(jī)之間是互不影響的。
Nginx提供了三種虛擬主機(jī)配置方式,1、基于ip的虛擬主機(jī),2、基于端口的虛擬主機(jī),3、基于域名的虛擬主機(jī)。最常用的是第三種,相對(duì)于 ip地址和端口號(hào),域名更方便記憶和使用。
[root@itdragon ~]# cd /etc/sysconfig/network-scripts/ [root@itdragon network-scripts]# ip addr 1: lo:mtu 65536 qdisc noqueue state UNKNOWN qlen 1 2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000 inet 192.168.225.131/24 brd 192.168.225.255 scope global dynamic ens33 [root@itdragon network-scripts]# vim ifcfg-ens33 # 添加 IPADDR1="192.168.225.132" IPADDR2="192.168.225.133" [root@itdragon network-scripts]# systemctl restart network [root@itdragon network-scripts]# ip addr 2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000 inet 192.168.225.131/24 brd 192.168.225.255 scope global dynamic ens33 inet 192.168.225.132/24 brd 192.168.225.255 scope global secondary ens33 inet 192.168.225.133/24 brd 192.168.225.255 scope global secondary ens33 [root@itdragon ~]# cd /usr/local/nginx [root@itdragon nginx]# cp -r html/ html-131/ [root@itdragon nginx]# cp -r html/ html-132/ [root@itdragon nginx]# cp -r html/ html-133/ [root@itdragon nginx]# vim html-131/index.html [root@itdragon nginx]# vim html-132/index.html [root@itdragon nginx]# vim html-133/index.html [root@itdragon nginx]# vim conf/nginx.conf # 添加 server { listen 80; server_name 192.168.225.132; location / { root html-132; index index.html index.htm; } } server { listen 80; server_name 192.168.225.133; location / { root html-133; index index.html index.htm; } } [root@itdragon nginx]# sbin/nginx -s reload
第一步:執(zhí)行命令ip addr 打印協(xié)議地址,得知網(wǎng)卡名是ens33,ip地址是192.168.225.131
第二步:進(jìn)入到/etc/sysconfig/network-scripts/ 修改ifcfg-ens33 文件添加兩個(gè)ip地址
第三步:重啟網(wǎng)絡(luò),并檢查配置是否生效,發(fā)現(xiàn)ens33對(duì)應(yīng)三個(gè)ip地址
第四步:進(jìn)入到/usr/local/nginx/ 目錄下,拷貝三份html目錄,并分別修改index.html 文件便于區(qū)分測(cè)試
第五步:修改Nginx配置文件,監(jiān)聽的端口不變,修改server_name為對(duì)應(yīng)ip地址,修改root為對(duì)應(yīng)的html目錄
第六步:重啟Nginx服務(wù),在瀏覽器上分別訪問(wèn)三個(gè)ip地址,觀察頁(yè)面變化
若你發(fā)現(xiàn)不同的ip地址打印不同頁(yè)面,和效果圖相似,則代表配置成功。
基于端口的虛擬主機(jī)和基于ip的虛擬主機(jī)配置幾乎一樣,只是在修改Nginx配置文件時(shí),只修改監(jiān)聽的端口和root對(duì)應(yīng)的目錄,其他的沒(méi)有變。這里就不貼命令了。
基于域名的虛擬主機(jī)這是Nginx比較常用的配置,也是有利于人類使用的配置方式。這里通過(guò)修改window系統(tǒng)下的host文件來(lái)模擬DNS服務(wù)器。
# Windows C:WindowsSystem32driversetchosts文件 # nginx 域名配置虛擬主機(jī) 192.168.225.131 www.itdragon.com 192.168.225.131 picture.itdragon.com 192.168.225.131 search.itdragon.com # CentOS [root@itdragon nginx]# cp -r html/ html-search [root@itdragon nginx]# cp -r html/ html-picture [root@itdragon nginx]# vim html-search/index.html [root@itdragon nginx]# vim html-picture/index.html [root@itdragon nginx]# vim conf/nginx.conf server { listen 80; server_name search.itdragon.com; location / { root html-search; index index.html index.htm; } } server { listen 80; server_name picture.itdragon.com; location / { root html-picture; index index.html index.htm; } } [root@itdragon nginx]# sbin/nginx -s reload
第一步:在window環(huán)境中,修改host文件,添加ip 域名映射關(guān)系,用來(lái)模擬DNS服務(wù)器
第二步:進(jìn)入到/usr/local/nginx/ 目錄下,拷貝兩份html目錄,分別修改index.html 文件便于區(qū)分測(cè)試
第三步:修改Nginx配置文件,監(jiān)聽的端口不變,修改server_name為對(duì)應(yīng)域名地址,修改root為對(duì)應(yīng)的html目錄
第四步:重啟Nginx服務(wù),在瀏覽器上分別訪問(wèn)兩個(gè)域名地址,觀察頁(yè)面變化
若你發(fā)現(xiàn)不同的域名地址打印不同頁(yè)面,和效果圖相似,則代表配置成功。
在了解Nginx 反向代理之前,我們先熟悉一下什么是代理服務(wù)器
代理服務(wù)器:是一個(gè)夾在客戶機(jī)和目標(biāo)主機(jī)中間的服務(wù)器。能提高客戶機(jī)訪問(wèn)響應(yīng)速度,還能設(shè)置防火墻過(guò)濾不安全信息。
響應(yīng)速度快:客戶機(jī)發(fā)送請(qǐng)求,代理服務(wù)器接收請(qǐng)求后,再轉(zhuǎn)發(fā)給目標(biāo)主機(jī)。目標(biāo)主機(jī)接收請(qǐng)求并將數(shù)據(jù)返回給代理服務(wù)器,代理服務(wù)器將數(shù)據(jù)返回給客戶機(jī)同時(shí)也會(huì)保存數(shù)據(jù)到本地。若客戶機(jī)下次有相同的請(qǐng)求,則直接從本地?cái)?shù)據(jù)返回。從而提高了響應(yīng)的速度。
設(shè)置防火墻:因?yàn)榇矸?wù)器夾在客戶機(jī)和目標(biāo)主機(jī)中間??蛻魴C(jī)所有的請(qǐng)求都會(huì)經(jīng)過(guò)代理服務(wù)器,所以如果在代理服務(wù)器上設(shè)置防火墻,則可以過(guò)濾一些不安全的信息,同時(shí)也方便管理。
清楚了代理服務(wù)器后,我們?cè)賮?lái)了解正向代理和反向代理的區(qū)別
正向代理:顧客:"服務(wù)員,我就要廚師A做的七彩紅燒肉"; 服務(wù)員:"好嘞,我這就安排廚師A給您做!"
反向代理:顧客:"服務(wù)員,我要一份七彩紅燒肉"; 服務(wù)員:"好嘞,我們的廚師B炒菜賊好吃!"
不知道大家看懂沒(méi)有。顧客就是客戶機(jī),服務(wù)員就是代理服務(wù)器,廚師們就是目標(biāo)主機(jī)。正向代理就相當(dāng)于客戶機(jī)明確指定目標(biāo)主機(jī)提供服務(wù)(目標(biāo)主機(jī)被動(dòng)接收請(qǐng)求)。反向代理就相當(dāng)于客戶機(jī)提供需求,代理服務(wù)器從一群目標(biāo)主機(jī)中找一臺(tái)去實(shí)現(xiàn)該需求(目標(biāo)主機(jī)主動(dòng)接收請(qǐng)求)。
現(xiàn)在開始配置Nginx的反向代理
[root@itdragon ~]# vim /usr/local/solr/tomcat1/webapps/ROOT/index.jsp [root@itdragon ~]# vim /usr/local/solr/tomcat2/webapps/ROOT/index.jsp [root@itdragon ~]# cd /usr/local/nginx [root@itdragon nginx]# vim conf/nginx.conf upstream searchserver { server 192.168.225.133:8081; } upstream pictureserver { server 192.168.225.133:8082; } server { listen 80; server_name search.itdragon.com; location / { proxy_pass http://searchserver; index index.html index.htm; } } server { listen 80; server_name picture.itdragon.com; location / { proxy_pass http://pictureserver; index index.html index.htm; } } [root@itdragon nginx]# sbin/nginx -s reload
第一步:準(zhǔn)備兩個(gè)tomcat服務(wù)器,端口分別是8081和8082,并分別修改index.jsp 文件便于區(qū)分測(cè)試
第二步:進(jìn)入到/usr/local/nginx/ 目錄下,修改Nginx配置文件。upstream 定義每個(gè)設(shè)備的狀態(tài),server 配置服務(wù),server_name 指定域名,proxy_pass 代理轉(zhuǎn)發(fā)到那臺(tái)設(shè)備上
第三步:重啟服務(wù),在瀏覽器上輸入不同的域名,會(huì)跳到對(duì)應(yīng)的頁(yè)面
Nginx的反向代理其實(shí)是在做請(qǐng)求的轉(zhuǎn)發(fā),后臺(tái)有多個(gè)http服務(wù)器提供服務(wù),Nginx的功能就是把請(qǐng)求轉(zhuǎn)發(fā)給后面的服務(wù)器,并決定把請(qǐng)求轉(zhuǎn)發(fā)給哪臺(tái)服務(wù)器。
反向代理流程
瀏覽器訪問(wèn)search.itdragon.com,通過(guò)本地host文件域名解析,找到192.168.225.131 Nginx虛擬主機(jī),Nginx接收客戶機(jī)請(qǐng)求,找到server_name為search.itdragon.com的節(jié)點(diǎn),再根據(jù)proxy_pass對(duì)應(yīng)的http路徑,將請(qǐng)求轉(zhuǎn)發(fā)到upstream searchserver上,即端口號(hào)為8081的tomcat服務(wù)器。
客戶機(jī)訪問(wèn) ---> search.itdragon.com ---> host ---> Nginx ---> server_name ---> proxy_pass ---> upstream---> tomcat
負(fù)載均衡 在高性能的主機(jī)上分配更多的負(fù)載,在性能低的主機(jī)分配少一些的負(fù)載,充分利用主機(jī)的性能,將其服務(wù)器的總壓力。Nginx的 upstream默認(rèn)是以輪詢的方式實(shí)現(xiàn)負(fù)載均衡,也可以分配權(quán)值。
[root@itdragon ~]# vim /usr/local/solr/tomcat3/webapps/ROOT/index.jsp [root@itdragon ~]# vim /usr/local/solr/tomcat4/webapps/ROOT/index.jsp [root@itdragon ~]# cd /usr/local/nginx [root@itdragon nginx]# vim conf/nginx.conf upstream pictureserver { server 192.168.225.133:8082 weight=2; server 192.168.225.133:8083 weight=1; server 192.168.225.133:8084 weight=1; } [root@itdragon nginx]# sbin/nginx -s reload
第一步:新增兩個(gè)tomcat服務(wù)器,端口分別為8083和8084,并分別修改index.jsp 文件便于區(qū)分測(cè)試
第二步:進(jìn)入到/usr/local/nginx/ 目錄下,修改Nginx配置文件,在pictureserver 內(nèi)新增兩個(gè)server
第三步:重啟服務(wù)
負(fù)載均衡的配置是在反向代理的基礎(chǔ)上修改的,所以請(qǐng)先完成反向代理的配置。
events { # 工作模式 worker_connections 1024; # 最大連接數(shù) } http { # 配置http服務(wù)器 include mime.types; # 定義mime的文件類型 default_type application/octet-stream; # 默認(rèn)文件類型 sendfile on; # 開啟 sendfile 函數(shù)(zero copy 方式)輸出文件 keepalive_timeout 65; # 連接超時(shí)時(shí)間,單位秒 upstream pictureserver { # 定義負(fù)載均衡設(shè)備的ip和狀態(tài) server 192.168.225.133:8081 ; # 默認(rèn)權(quán)重值為一 server 192.168.225.133:8082 weight=2; # 值越高,負(fù)載的權(quán)重越高 server 192.168.225.133:8083 down; # 當(dāng)前server 暫時(shí)不參與負(fù)載 server 192.168.225.133:8084 backup; # 當(dāng)其他非backup狀態(tài)的server 不能正常工作時(shí),才請(qǐng)求該server,簡(jiǎn)稱熱備 } server { # 設(shè)定虛擬主機(jī)配置 listen 80; # 監(jiān)聽的端口 server_name picture.itdragon.com; # 監(jiān)聽的地址,多個(gè)域名用空格隔開 location / { # 默認(rèn)請(qǐng)求 ,后面 "/" 表示開啟反向代理,也可以是正則表達(dá)式 root html; # 監(jiān)聽地址的默認(rèn)網(wǎng)站根目錄位置 proxy_pass http://pictureserver; # 代理轉(zhuǎn)發(fā) index index.html index.htm; # 歡迎頁(yè)面 deny 127.0.0.1; # 拒絕的ip allow 192.168.225.133; # 允許的ip } error_page 500 502 503 504 /50x.html;# 定義錯(cuò)誤提示頁(yè)面 location = /50x.html { # 配置錯(cuò)誤提示頁(yè)面 root html; } }
具體配置詳情可以參考:http://blog.csdn.net/happydre...
總結(jié)1 Nginx 通過(guò)修改nginx.conf server_name配置,達(dá)到配置多臺(tái)基于ip,基于域名的虛擬主機(jī)
2 Nginx 通過(guò)修改nginx.conf upstream 和 proxy_pass配置,達(dá)到反向代理效果
3 Nginx 通過(guò)修改nginx.conf upstream server 狀態(tài),達(dá)到負(fù)載均衡效果
4 代理服務(wù)器有提高客戶端獲取數(shù)據(jù)的速度,和方便管理設(shè)置防火墻的功能
到這里Nginx的多虛擬主機(jī),反向代理和負(fù)載均衡就結(jié)束了,感謝閱讀!歡迎點(diǎn)贊!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39717.html
摘要:負(fù)載均衡嚴(yán)格來(lái)說(shuō),僅僅是作為反向代理的使用的,但是因?yàn)檫@個(gè)反向代理功能表現(xiàn)的效果是負(fù)載均衡機(jī)器的效果,因此負(fù)載均衡是特殊的反向代理。 反向代理 反向代理指的是以代理服務(wù)器接收用戶的的訪問(wèn)請(qǐng)求,代理用戶向內(nèi)部服務(wù)器重新發(fā)起請(qǐng)求,最后把內(nèi)部服務(wù)器的響應(yīng)信息返回給用戶。這樣,代理服務(wù)器對(duì)外就表現(xiàn)為一臺(tái)服務(wù)器,而訪問(wèn)內(nèi)部服務(wù)器的客戶端用的就是代理服務(wù)器,而不是真實(shí)網(wǎng)站訪問(wèn)用戶。 為什么使用反向...
摘要:本文介紹三者之間的關(guān)系,以及反向代理和負(fù)載均衡的配置。先使用負(fù)載均衡模塊找到一臺(tái)主機(jī),再使用模塊實(shí)現(xiàn)與這臺(tái)主機(jī)的交互。負(fù)載均衡配置該例定義了一個(gè)的負(fù)載均衡配置,通過(guò)反向代理指令應(yīng)用這個(gè)配置。 本文介紹 PHP-FPM,Nginx,FastCGI 三者之間的關(guān)系,以及 Nginx 反向代理和負(fù)載均衡的配置。 PHP-FPM,Nginx,FastCGI 之間的關(guān)系 FastCGI 是一個(gè)協(xié)...
摘要:今天無(wú)聊,把上幾天自己測(cè)試的作反向代理負(fù)載均衡的步驟記錄下來(lái),以供學(xué)習(xí)記錄。反向代理,我個(gè)人理解是通過(guò)一臺(tái)反向代理服務(wù)器,把客戶端的把有請(qǐng)求按照一定的規(guī)則分發(fā)給后臺(tái)的服務(wù)器。 今天無(wú)聊,把上幾天自己測(cè)試的nginx作反向代理負(fù)載均衡的步驟記錄下來(lái),以供學(xué)習(xí)記錄。反向代理,我個(gè)人理解是通過(guò)一臺(tái)反向代理服務(wù)器,把客戶端的把有請(qǐng)求按照一定的規(guī)則分發(fā)給后臺(tái)的服務(wù)器。nginx作反向代理服務(wù)器的...
閱讀 1173·2023-04-25 17:28
閱讀 3637·2021-10-14 09:43
閱讀 3982·2021-10-09 10:02
閱讀 1953·2019-08-30 14:04
閱讀 3146·2019-08-30 13:09
閱讀 3283·2019-08-30 12:53
閱讀 2922·2019-08-29 17:11
閱讀 1836·2019-08-29 16:58