Nginx正向反向代理區(qū)別及原理解析
一、正向代理和反向代理的區(qū)別
正向代理代理客戶端,反向代理代理服務(wù)器。
1.1正向代理
正向代理服務(wù)器位于客戶端和服務(wù)器之間,為了從服務(wù)器獲取數(shù)據(jù),客戶端要向代理服務(wù)器發(fā)送一個(gè)請(qǐng)求,并指定目標(biāo)服務(wù)器,代理服務(wù)器將目標(biāo)服務(wù)器返回的數(shù)據(jù)轉(zhuǎn)交給客戶端。這里客戶端需要要進(jìn)行一些正向代理的設(shè)置的。
舉例:翻墻
正向代理中被代理的是客戶端的請(qǐng)求
1.2 反向代理
反向代理,客戶端對(duì)代理是無(wú)感知的,客戶端不需要任何配置就可以訪問(wèn),客戶端將請(qǐng)求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,在返回給客戶端,此時(shí)反向代理服務(wù)器和目標(biāo)服務(wù)器對(duì)外就是一個(gè)服務(wù)器,暴露的是代理服務(wù)器地址,隱藏了真實(shí)服務(wù)器IP地址。
二、nginx反向代理的使用
在nginx的配置文件nginx.conf中新建一個(gè)虛擬主機(jī)的配置,
server { listen 8080; server_name localhost; location /category/ { proxy_pass http://localhost; } }
以上的配置中,
listen 表示nginx要監(jiān)聽的端口;
server_name 就是訪問(wèn)nginx時(shí)在瀏覽器中輸入的域名,可以直接填ip地址,要綁定多個(gè)可以用空格隔開;
location 表示nginx監(jiān)聽該端口時(shí)要匹配的url,如果訪問(wèn)nginx的url中包含有/category/就執(zhí)行代理
proxy_pass 表示nginx要把客戶端的請(qǐng)求代理到的目標(biāo)。
注意這里proxy_pass的路徑寫法,如果像上邊這樣,路徑的結(jié)尾不帶/,表示的是相對(duì)路徑,那么nginx在轉(zhuǎn)發(fā)請(qǐng)求時(shí)不會(huì)截取掉原始url中的/category/ ,如瀏覽器訪問(wèn)http://localhost:8080/category/findAll,那么nginx實(shí)際發(fā)出的請(qǐng)求地址是http://localhost/category/findAll。
如果proxy_pass的目標(biāo)路徑配置時(shí) 末尾帶上了/ ,表示的是絕對(duì)路徑,那么nginx在轉(zhuǎn)發(fā)請(qǐng)求時(shí)就會(huì)截取掉原始url中的/category/ ,如瀏覽器訪問(wèn)http://localhost:8080/category/findAll,那么nginx實(shí)際發(fā)出的請(qǐng)求地址是http://localhost/findAll。
在配置時(shí)要根據(jù)自己的需要決定是否需要帶 /,不然實(shí)際使用時(shí)nginx會(huì)一直報(bào)404的錯(cuò)誤。
我這里的配置因?yàn)槲业暮蠖私涌诼窂街邪?category,所以我使用了相對(duì)路徑,保留了這個(gè)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Mac使用Nginx設(shè)置代理并禁用自帶Apache的問(wèn)題記錄
本文介紹如何在Mac上禁用自帶的Apache服務(wù)并安裝Nginx,首先需要關(guān)閉Apache并禁止其自啟動(dòng),接著,通過(guò)Homebrew安裝Nginx,并配置其文件和目錄,最后,介紹了如何生成SSL/自簽名證書,詳細(xì)步驟包括修改Apache配置、安裝Nginx、編輯Nginx配置文件以及驗(yàn)證和重啟Nginx服務(wù)2024-09-09在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法
這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法,包括打開和關(guān)閉Nginx的指令,需要的朋友可以參考下2015-08-08nginx設(shè)置超時(shí)時(shí)間的問(wèn)題及解決方案
程序在處理大量數(shù)據(jù),接口超過(guò)1分鐘(默認(rèn)的)未返回?cái)?shù)據(jù),導(dǎo)致等待超時(shí),出現(xiàn)這種情況,我們可以先優(yōu)化程序,縮短執(zhí)行時(shí)間,可以調(diào)大nginx超時(shí)限制的參數(shù),使程序可以正常執(zhí)行,本文介紹nginx設(shè)置超時(shí)時(shí)間及504 Gateway Time-out的問(wèn)題解決方案,一起看看吧2024-02-02