Nginx 正向代理和反向代理的配置實(shí)現(xiàn)
1、為什么 Nginx 性能這么高
Nginx性能高的原因有以下幾點(diǎn):
Nginx是一個(gè)輕量級的Web服務(wù)器,它使用少量的系統(tǒng)資源來處理大量的并發(fā)連接請求。
Nginx采用了事件驅(qū)動模型,它使用異步非阻塞的方式處理請求,可以更好地利用系統(tǒng)資源。
Nginx具有高度的可擴(kuò)展性和靈活性,可以通過添加模塊來擴(kuò)展其功能。
Nginx具有出色的負(fù)載均衡和反向代理功能,可以將請求分配到多個(gè)服務(wù)器上,從而提高性能和可靠性。
總之,Nginx通過優(yōu)秀的架構(gòu)設(shè)計(jì)和高效的算法實(shí)現(xiàn)了高性能和高可靠性,成為了Web服務(wù)器領(lǐng)域的佼佼者。
2、Nginx 正向代理和反向代理
Nginx既可以作為正向代理,也可以作為反向代理。正向代理和反向代理的區(qū)別在于代理的對象不同。
正向代理:客戶端向代理服務(wù)器發(fā)送請求,代理服務(wù)器再向目標(biāo)服務(wù)器發(fā)送請求,目標(biāo)服務(wù)器返回響應(yīng)給代理服務(wù)器,代理服務(wù)器再將響應(yīng)返回給客戶端。這時(shí),客戶端并不知道請求的目標(biāo)服務(wù)器是哪個(gè),只知道代理服務(wù)器的地址。
反向代理:客戶端向目標(biāo)服務(wù)器發(fā)送請求,但實(shí)際上請求被發(fā)送到了反向代理服務(wù)器上,反向代理服務(wù)器會根據(jù)配置的規(guī)則將請求轉(zhuǎn)發(fā)給后端的目標(biāo)服務(wù)器進(jìn)行處理,再將處理結(jié)果返回給客戶端。這時(shí),客戶端并不知道請求的目標(biāo)服務(wù)器是哪個(gè),只知道反向代理服務(wù)器的地址。
Nginx可以通過配置文件的方式實(shí)現(xiàn)正向代理和反向代理的功能。在配置文件中,通過proxy_pass指令指定代理服務(wù)器的地址和端口號,即可實(shí)現(xiàn)代理的功能。
3、Nginx 正向代理的配置
nginx.conf 配置正向代理:
http { # 定義正向代理服務(wù)器的地址和端口號 upstream proxy_server { server 192.168.1.1:8080; } # 定義代理服務(wù)器的緩存 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m inactive=60m; # 定義代理服務(wù)器的緩存時(shí)間 proxy_cache_valid 200 60m; # 定義代理服務(wù)器的緩存大小 proxy_cache_size 10m; # 定義代理服務(wù)器的緩存類型 proxy_cache_key "$scheme$request_method$host$request_uri"; # 定義代理服務(wù)器的緩存控制 proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; proxy_cache_min_uses 1; # 定義代理服務(wù)器的超時(shí)時(shí)間 proxy_connect_timeout 30s; proxy_send_timeout 60s; proxy_read_timeout 60s; # 定義代理服務(wù)器的請求頭 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 定義代理服務(wù)器的響應(yīng)頭 proxy_hide_header X-Powered-By; proxy_hide_header Server; # 定義代理服務(wù)器的緩存控制頭 add_header Cache-Control "public, max-age=60, s-maxage=60"; # 定義代理服務(wù)器的緩存控制頭 proxy_cache_lock on; # 定義代理服務(wù)器的緩存控制頭 proxy_cache_methods GET HEAD POST; }
server { listen 80; server_name example.com; # 定義代理服務(wù)器的地址和端口號 location / { proxy_pass http://proxy_server; proxy_cache cache; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 60m; proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; proxy_cache_min_uses 1; } }
4、Nginx 配置反向代理
nginx.conf 配置反向代理:
http { # 定義后端服務(wù)器的地址和端口號 upstream backend_server { server 192.168.1.1:8080; } }
server { listen 80; server_name example.com; # 定義反向代理規(guī)則,將請求轉(zhuǎn)發(fā)到后端服務(wù)器 location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
到此這篇關(guān)于Nginx 正向代理和反向代理的配置實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx 正向代理和反向代理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Laravel的Nginx重寫規(guī)則實(shí)例代碼
這篇文章主要介紹了Laravel的Nginx重寫規(guī)則實(shí)例代碼,需要的朋友可以參考下2017-09-09nginx部署vue項(xiàng)目的詳細(xì)圖文教程
很多小伙伴在做完Vue項(xiàng)目之后,想要部署到服務(wù)器上自己運(yùn)行試試,下面這篇文章主要給大家介紹了關(guān)于nginx部署vue項(xiàng)目的詳細(xì)圖文教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Nginx實(shí)現(xiàn)跨域使用字體文件的配置詳解
這篇文章主要給大家介紹了關(guān)于Nginx實(shí)現(xiàn)跨域使用字體文件的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06nginx中proxy_set_header參數(shù)的實(shí)現(xiàn)
本文詳細(xì)介紹了Nginx中proxy_set_header指令的用法,通過設(shè)置不同的請求頭信息,可以實(shí)現(xiàn)更靈活的反向代理功能,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12nginx?location指令(匹配順序匹配沖突)實(shí)戰(zhàn)示例詳解
這篇文章主要介紹了nginx?location指令(實(shí)戰(zhàn)示例匹配順序匹配沖突)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06