Nginx
1铐料、Http代理渐裂,反向代理:作為web服務(wù)器最常用的功能之一,尤其是反向代理钠惩。
這里我給來(lái)2張圖柒凉,對(duì)正向代理與反響代理做個(gè)詮釋,具體細(xì)節(jié)篓跛,大家可以翻閱下資料膝捞。
正向代理
正向代理類似一個(gè)跳板機(jī),代理訪問(wèn)外部資源举塔。
舉個(gè)例子:
我是一個(gè)用戶绑警,我訪問(wèn)不了某網(wǎng)站求泰,但是我能訪問(wèn)一個(gè)代理服務(wù)器央渣,這個(gè)代理服務(wù)器呢,他能訪問(wèn)那個(gè)我不能訪問(wèn)的網(wǎng)站,于是我先連上代理服務(wù)器,告訴他我需要那個(gè)無(wú)法訪問(wèn)網(wǎng)站的內(nèi)容渴频,代理服務(wù)器去取回來(lái),然后返回給我芽丹。從網(wǎng)站的角度,只在代理服務(wù)器來(lái)取內(nèi)容的時(shí)候有一次記錄卜朗,有時(shí)候并不知道是用戶的請(qǐng)求拔第,也隱藏了用戶的資料咕村,這取決于代理告不告訴網(wǎng)站。
客戶端必須設(shè)置正向代理服務(wù)器蚊俺,當(dāng)然前提是要知道正向代理服務(wù)器的IP地址懈涛,還有代理程序的端口
總結(jié)來(lái)說(shuō):正向代理 是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容泳猬,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器)批钠,然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端〉梅猓客戶端必須要進(jìn)行一些特別的設(shè)置才能使用正向代理埋心。
正向代理的用途:
(1)訪問(wèn)原來(lái)無(wú)法訪問(wèn)的資源,如google
? ? ?(2) 可以做緩存忙上,加速訪問(wèn)資源
】酱簟(3)對(duì)客戶端訪問(wèn)授權(quán),上網(wǎng)進(jìn)行認(rèn)證
∫咧唷(4)代理可以記錄用戶訪問(wèn)記錄(上網(wǎng)行為管理)茬斧,對(duì)外隱藏用戶信息
反向代理
初次接觸方向代理的感覺(jué)是,客戶端是無(wú)感知代理的存在的梗逮,反向代理對(duì)外都是透明的啥供,訪問(wèn)者者并不知道自己訪問(wèn)的是一個(gè)代理。因?yàn)榭蛻舳瞬恍枰魏闻渲镁涂梢栽L問(wèn)库糠。
反向代理(Reverse Proxy)實(shí)際運(yùn)行方式是指以代理服務(wù)器來(lái)接受internet上的連接請(qǐng)求伙狐,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端瞬欧,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器贷屎。
反向代理的作用:
(1)保證內(nèi)網(wǎng)的安全,可以使用反向代理提供WAF功能艘虎,阻止web攻擊
大型網(wǎng)站唉侄,通常將反向代理作為公網(wǎng)訪問(wèn)地址,Web服務(wù)器是內(nèi)網(wǎng)野建。
Nginx在做反向代理時(shí)属划,提供性能穩(wěn)定,并且能夠提供配置靈活的轉(zhuǎn)發(fā)功能候生。Nginx可以根據(jù)不同的正則匹配同眯,采取不同的轉(zhuǎn)發(fā)策略,比如圖片文件結(jié)尾的走文件服務(wù)器唯鸭,動(dòng)態(tài)頁(yè)面走web服務(wù)器须蜗,只要你正則寫的沒(méi)問(wèn)題,又有相對(duì)應(yīng)的服務(wù)器解決方案,你就可以隨心所欲的玩明肮。并且Nginx對(duì)返回結(jié)果進(jìn)行錯(cuò)誤頁(yè)跳轉(zhuǎn)菱农,異常判斷等。如果被分發(fā)的服務(wù)器存在異常柿估,他可以將請(qǐng)求重新轉(zhuǎn)發(fā)給另外一臺(tái)服務(wù)器循未,然后自動(dòng)去除異常服務(wù)器★啵總的來(lái)說(shuō) Nginx在做反向代理時(shí)只厘,通過(guò)反向代理實(shí)現(xiàn)網(wǎng)站的負(fù)載均衡。這部分先寫一個(gè)nginx的配置舅巷,后續(xù)需要深入研究nginx的代理模塊和負(fù)載均衡模塊羔味。nginx通過(guò)proxy_pass_http 配置代理站點(diǎn),upstream實(shí)現(xiàn)負(fù)載均衡钠右。
2赋元、負(fù)載均衡
Nginx提供的負(fù)載均衡策略有2種:內(nèi)置策略和擴(kuò)展策略。內(nèi)置策略為輪詢飒房,加權(quán)輪詢搁凸,Ip hash。擴(kuò)展策略狠毯,就天馬行空护糖,只有你想不到的沒(méi)有他做不到的啦,你可以參照所有的負(fù)載均衡算法嚼松,給他一一找出來(lái)做下實(shí)現(xiàn)嫡良。
上3個(gè)圖,理解這三種負(fù)載均衡算法的實(shí)現(xiàn)
Ip hash算法献酗,對(duì)客戶端請(qǐng)求的ip進(jìn)行hash操作寝受,然后根據(jù)hash結(jié)果將同一個(gè)客戶端ip的請(qǐng)求分發(fā)給同一臺(tái)服務(wù)器進(jìn)行處理,可以解決session不共享的問(wèn)題罕偎。?
啟動(dòng)
?啟動(dòng)代碼格式:nginx安裝目錄地址 -c nginx配置文件地址
例如:
[root@LinuxServer sbin]#/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf
停止
?nginx的停止有三種方式:
從容停止
1很澄、查看進(jìn)程號(hào)
[root@LinuxServer ~]#ps -ef|grep nginx
2、殺死進(jìn)程
[root@LinuxServer ~]#kill -QUIT2072
快速停止
1颜及、查看進(jìn)程號(hào)
[root@LinuxServer ~]#ps -ef|grep nginx
2甩苛、殺死進(jìn)程
[root@LinuxServer ~]#kill -TERM2132
或 [root@LinuxServer ~]#kill -INT2132
強(qiáng)制停止
[root@LinuxServer ~]#pkill -9 nginx
重啟
1、驗(yàn)證nginx配置文件是否正確
方法一:進(jìn)入nginx安裝目錄sbin下俏站,輸入命令./nginx -t
看到如下顯示nginx.conf syntax is ok
nginx.conf test is successful
說(shuō)明配置文件正確讯蒲!
方法二:在啟動(dòng)命令-c前加-t
?2、重啟Nginx服務(wù)
方法一:進(jìn)入nginx可執(zhí)行目錄sbin下乾翔,輸入命令./nginx -s reload?即可
方法二:查找當(dāng)前nginx進(jìn)程號(hào)爱葵,然后輸入命令:kill -HUP 進(jìn)程號(hào) 實(shí)現(xiàn)重啟nginx服務(wù)