什么是反向代理?Nginx反向代理如何配置?
nginx在日常工作中是一個不可缺少的服務(wù),其中使用nginx做的事情最多的就是反反向代理,今天筆者帶大家詳細學(xué)習(xí)一下nginx反向代理。
讓我們直接開始!
安裝nginx
在開始本文前,請先保證你的服務(wù)器已經(jīng)安裝好nginx,安裝nginx非常簡單。
本文我將以ubantu系統(tǒng)為例,那么怎么在ubantu系統(tǒng)安裝nginx呢?
只需要一條命令即可:
apt-get install nginx
- 1.
這里我就不帶大家安裝了,安裝好后,執(zhí)行一條命令:
nginx -v
- 1.
如果出現(xiàn)以下結(jié)果:
則代表你的nginx安裝成功了,我這里安裝的是1.14.0的版本。
用apt-get install nginx命令安裝完nginx后,有幾個默認的目錄需要大家記一下:
- 主程序:/usr/sbin/nginx
- 配置文件:/etc/nginx
- 靜態(tài)文件:/usr/share/nginx
- 日志文件:/var/log/nginx
這幾個目錄記好,后面配置的時候可能會用到。
當(dāng)然了,用源碼部署的方式安裝你就可以自己定義路徑了。
Nginx幾個重要的命令
- 啟動:./usr/sbin/nginx或者service nginx start
- 重啟:./usr/sbin/nginx -s reload或者service nginx restart
- 強行停止:./usr/sbin/nginx -s stop或者service nginx stop
- 優(yōu)雅停止:./usr/sbin/nginx -s quit
- 檢測配置文件是否有錯誤:./usr/sbin/nginx -t
- 指定配置文件:./usr/sbin/nginx -c xxx.conf
什么是反向代理
代理服務(wù)器
要理解反向代理這個術(shù)語,首先了解一下什么是代理服務(wù)器?
代理服務(wù)器是放置在用戶和網(wǎng)站之間來實現(xiàn)匿名的中間服務(wù)器,當(dāng)通過代理服務(wù)器訪問網(wǎng)站時,請求會發(fā)送到代理服務(wù)器,然后代理服務(wù)器會將其轉(zhuǎn)發(fā)到網(wǎng)站,對于網(wǎng)站,請求看起來像來自代理服務(wù)器,這就是轉(zhuǎn)發(fā)代理,也叫正向代理。
轉(zhuǎn)發(fā)代理
反向代理
服務(wù)器有時需要匿名來增強其安全性,這樣,這樣在目的服務(wù)器前置一般會放一個代理服務(wù)器,讓用戶感覺這個代理服務(wù)器就是目的服務(wù)器,保證了匿名性,這樣的過程稱為反向代理。
正向代理和反向代理的區(qū)別
簡單的區(qū)別方法是正向代理位于客戶端前面,確保服務(wù)器不直接與客戶端通信。而反向代理位于服務(wù)器前面,并確保沒有客戶端直接與該服務(wù)器通信。
用兩張圖形象解釋一下:
正向代理就好像,一個公司老板要去某個工地上要錢,老板不直接去,會派公司代表去,這個公司的代表其實就是代理服務(wù)器,代公司去處理事務(wù),這個對于老板——>工地是正向代理的關(guān)系。
反向代理就好像,去要錢的時候,工地很聰明,知道自己不想那么煩,就找了一個代賬公司,這個代賬公司對外就是代表這個工地,所以看起來和公司主體沒有啥區(qū)別,那么這個代賬公司就是反向代理的服務(wù)器。
Nginx反向代理
Nginx是一個開源的 Web 服務(wù)器,可以作為反向代理,根據(jù)知名統(tǒng)計網(wǎng)站統(tǒng)計,Nginx 的市場份額一直在穩(wěn)步增長,并且已經(jīng)超過 Apache:
Nginx 反向代理用途
- 負載均衡來控制路由傳入請求
- 監(jiān)控、重定向和記錄流量
- 公開/保護您的后端服務(wù)
- 加快網(wǎng)絡(luò)訪問速度
Nginx反向代理例子
如圖,我們要達到一個效果,訪問127.0.0.1:9999,反向代理到我們的網(wǎng)站https://www.wljslmz.cn.
先看下nginx的配置:
server { listen 9999; server_name localhost; location / { proxy_pass https://www.wljslmz.cn; } }
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- listen:表示nginx監(jiān)聽的端口,也就是你在瀏覽器輸入的端口號。
- server_name:表示nginx監(jiān)聽的地址,也就是你在瀏覽器輸入的地址或者域名
- location:用來匹配不同的url,這里/代表根路徑。
- proxy_pass:代理的指令,我們這里是代理到https://www.wljslmz.cn
這個時候,重載nginx配置,然后在瀏覽器輸入:
http://localhost:9999
- 1.
代理后:
我們可以很清晰的看到代理成功!
這里我們通過案例,簡單的介紹了nginx的反向代理,在生產(chǎn)測試的時候,還要根據(jù)不同的場景進行配置。