系列文章目錄
【Nginx一】——Nginx介紹(正向代理 反向代理 負(fù)載均衡 動(dòng)靜分離)
【Nginx二】——Nginx常用命令 配置文件
Nginx如何處理請(qǐng)求
前言
本篇博客主要介紹Nginx如何實(shí)現(xiàn)反向代理,會(huì)進(jìn)行介紹什么是反向代理,以及進(jìn)行實(shí)例實(shí)現(xiàn)反向代理。
一、反向代理是什么?
代理服務(wù)器來(lái)接收網(wǎng)絡(luò)上請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給網(wǎng)絡(luò)上連接的客戶(hù)端。
背景:首先有一個(gè)用戶(hù)C,三臺(tái)服務(wù)器S1、S2和S3,但S1對(duì)外網(wǎng)開(kāi)放,S2和S3不對(duì)外網(wǎng)開(kāi)放,還有一份資源D,資源D放在服務(wù)器S2和S3上。
用戶(hù)C并不知道資源D在服務(wù)器S2和S3上面,他只知道訪(fǎng)問(wèn)服務(wù)器S1就可以得到資源D,于是他每次都是直接訪(fǎng)問(wèn)服務(wù)器S1,只不過(guò)提供給用戶(hù)C資源的都是來(lái)自服務(wù)器S2或者S3.
反向代理對(duì)于用戶(hù)C來(lái)說(shuō),他是不知道資源D具體在哪里,也不知道具體由誰(shuí)提供。
對(duì)于服務(wù)器S1來(lái)說(shuō)每次都接受用戶(hù)的請(qǐng)求,然后再把請(qǐng)求根據(jù)調(diào)度策略交給提供資源D的服務(wù)器S2或者S3,對(duì)于服務(wù)器S2和S3來(lái)說(shuō)同樣也都不知道訪(fǎng)問(wèn)這份資源D的真實(shí)用戶(hù)是誰(shuí),只是和服務(wù)器S1進(jìn)行交互。
二、Nginx實(shí)現(xiàn)反向代理
實(shí)現(xiàn)反向代理示意圖:
1.tomcat環(huán)境準(zhǔn)備并進(jìn)行訪(fǎng)問(wèn)
在Linux服務(wù)器上安裝tomcat并進(jìn)行啟動(dòng),linux虛擬機(jī)的ip為192.168.60.123
通過(guò)ip+端口號(hào)8080訪(fǎng)問(wèn)tomcat服務(wù)器;成功訪(fǎng)問(wèn)的頁(yè)面:
2.通過(guò)域名訪(fǎng)問(wèn)tomcat
在windows下的hosts文件中進(jìn)行域名與ip的映射關(guān)系。C:\WINDOWS\system32\drivers\etc
Windows10上的host文件配置作用是將一些常用的網(wǎng)址域名與其對(duì)應(yīng)的IP地址建立一個(gè)關(guān)聯(lián)“數(shù)據(jù)庫(kù)”。這個(gè)文件的主要作用是定義IP地址和主機(jī)名的映射關(guān)系,是一個(gè)映射IP地址和主機(jī)名的規(guī)定3。當(dāng)我們?cè)跒g覽器中輸入一個(gè)網(wǎng)址時(shí),瀏覽器會(huì)首先查找本地的hosts文件,如果找到了對(duì)應(yīng)的IP地址,就直接訪(fǎng)問(wèn)該IP地址對(duì)應(yīng)的服務(wù)器,否則就向DNS服務(wù)器發(fā)出請(qǐng)求,獲取該網(wǎng)址對(duì)應(yīng)的IP地址。
示例(如圖:)
linux虛擬機(jī)的ip為192.168.60.123
這次通過(guò)域名www.test.com+端口號(hào)8080進(jìn)行訪(fǎng)問(wèn)。
實(shí)現(xiàn)效果截圖:
3.通過(guò)域名不加端口號(hào)進(jìn)行訪(fǎng)問(wèn)(實(shí)現(xiàn)反向代理)
修改Nginx的配置文件,編輯nginx.conf文件,修改server模塊。
首先nginx會(huì)監(jiān)聽(tīng)80端口的請(qǐng)求,再匹配服務(wù)名是為192.168.60.123的請(qǐng)求,匹配上之后再根據(jù)location的匹配規(guī)則進(jìn)行匹配。要將請(qǐng)求傳遞到 HTTP 代理服務(wù)器,使用 proxy_pass 指令可以看這篇博客進(jìn)行詳細(xì)了解Nginx如何處理請(qǐng)求
代碼如下(示例):
server {
listen 80;
server_name 192.168.60.123;
location / {
proxy_pass http://192.168.60.123:8080;
}
}
配置好之后通過(guò)域名www.test.com進(jìn)行訪(fǎng)問(wèn)
實(shí)現(xiàn)效果截圖:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-742936.html
總結(jié)
不難看出反向代理對(duì)于客戶(hù)端來(lái)說(shuō)不知道目的服務(wù)器,客戶(hù)端只知道請(qǐng)求代理服務(wù)器能夠獲取到需要的資源。而代理服務(wù)器可以通過(guò)相應(yīng)的配置攔截前往我們后端服務(wù)器的客戶(hù)端的請(qǐng)求,通過(guò)這樣做,代理服務(wù)器可以保護(hù)目的服務(wù)器的身份并作為對(duì)安全攻擊的額外防御。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742936.html
到了這里,關(guān)于【Nginx三】——Nginx實(shí)現(xiàn)反向代理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!