国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx反向代理升級--upstream改造proxy_pass

harryhappy / 3172人閱讀

摘要:同時若不想破壞已經做好的的話,也可以不使用,直接轉發到服務器的內網應該也是可以的。這樣在安全和效率高上就都能得到一定的提升。

之前寫了一些nginx的東西,這次繼續,主要使用upstream針對proxy_pass轉發做個處理
一般情況下我們在使用nginx反向代理的時候,都是如下配置,

...
location /api {
   proxy_pass https://b.test.com; # 設置代理服務器的協議和地址
   proxy_cookie_domain b.test.com  a.test.com; # 修改cookie,針對request和response互相寫入cookie
}       
...

這樣就實現了"/api"目錄接口的轉發。功能是實現了,但是有什么問題么?還真有!
如果我們可以反向代理,如果別人也知道了我們的接口域名也不是可以自己搭一個nginx服務器就可以代理到我們的接口服務器上去???是不是感覺很危險,是的。。。對此當時做的時候就加了一個臨時方案,在接口服務中添加一個ip白名單,白名單中的ip都是nginx服務器的ip,然后就項目上線了。這樣也實現了需求,但ip如果被偽造了怎么辦?于是我們想到了另一個方案,使用內網IP代替對外開放的域名,這樣在一定程度上就直接攔截了外部的直接訪問,具體實現如下,

upstream apiServer {
    server 10.10.10.10.:8888
}
...
location /api {
   proxy_pass http://apiServer; 
   proxy_cookie_domain apiServer a.test.com; 
}       
...

我們使用upstream定義了一個apiServer的組,將轉發都指向這里,這時相當于我們把可能存在的用戶直接訪問接口服務器的可能給關閉了,也就是途中紅色的那部分危險操作~~

可能你會想upstream的使用純屬多余,的確當apiServer只有一臺機器的時候,這個的確可以不用,但是多臺機器的時候,雖然proxy_pass雖然可以定義多條但是太麻煩了。。。使用upstream組統一管理即可,同時使用upstream還有一些優勢比如給多個server設置負載均衡,upstream組中支持通過weight參數來設置當前server在負載均衡中所占的比重,此外還可以通過設置backup參數指定某些服務器作為備份機等等。詳細的配置內容還是建議大家參考Nginx upstream官方文檔。
此外,除了安全性方面,使用內網ip進行接口轉發也省去了轉發中的DNS重新解析的過程,有利于大幅提升接口轉發效率。同時若不想破壞已經做好的SLB的話,也可以不使用upstream,直接轉發到SLB服務器的內網ip應該也是可以的。

綜上,在proxy_pass轉發中我們使用了兩種方案來對安全性做一些提升

proxy_pass轉發到外網域名,同時在接口服務器上添加訪問來源白名單,把nginx服務器的ip寫進去

proxy_pass轉發到內網域名,多服務器的話使用upstream統一管理并實現負載均衡,也能提升轉發效率

第二種方案是不是通用的呢?這樣可行的話,我們的接口服務器是不是都不用設置外網可訪問的域名了呢?
第二種方案是可以通用的,但是這不意味著我們就可以拋棄外部可訪問的域名,因為在一個落地業務中,比如第三方授權、微信支付等情況下外部可訪問域名還是必須要有的。因此只有那些不需要與第三方進行通信,比如僅供公司內部使用的管理系統等,就可以直接拋棄外網域名了。此時個人建議就是上面兩種方案結合一下:

proxy_pass的轉發使用內網ip,來提升轉發效率,同時對外部訪問添加白名單,只暴露需要和第三方通信的接口即可。

這樣在安全和效率高上就都能得到一定的提升。

如有錯誤,歡迎大家指正
好好學習,天天向上~~


此處添加一個修正,最初版原文中在proxy_pass后面我們使用了https+upstream的方式進行轉發,但是在生產環境上發現使用https出現服務器502網關問題。

...
location /api {
   proxy_pass https://apiServer; 
   proxy_cookie_domain apiServer a.test.com; 
}       
...

upstream不用寫https,把https換成了http,問題解決。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40209.html

相關文章

  • Nginx反向代理與負載均衡

    摘要:負載均衡嚴格來說,僅僅是作為反向代理的使用的,但是因為這個反向代理功能表現的效果是負載均衡機器的效果,因此負載均衡是特殊的反向代理。 反向代理 反向代理指的是以代理服務器接收用戶的的訪問請求,代理用戶向內部服務器重新發起請求,最后把內部服務器的響應信息返回給用戶。這樣,代理服務器對外就表現為一臺服務器,而訪問內部服務器的客戶端用的就是代理服務器,而不是真實網站訪問用戶。 為什么使用反向...

    fai1017 評論0 收藏0
  • nginx(三):反向代理

    摘要:反向代理模塊何為反向代理接收客戶端請求,并把請求交給后端服務器處理,后端服務器處理完成后,響應通過反向代理服務器返回給客戶端。作為反向代理服務器經常要配置一組服務器,以實現負載均衡。 1、nginx反向代理模塊 何為反向代理?接收客戶端請求,并把請求交給后端服務器處理,后端服務器處理完成后,響應通過反向代理服務器返回給客戶端。反向代理可實現局域網中的服務器可被公網中的客戶端訪問,也可實...

    cloud 評論0 收藏0
  • 為Yii2配置Nginx反向代理緩存提高并發支持

    摘要:首先,在的主配置文件里先設置好與緩存相關的配置這里需要先手工建立與緩存相應的目錄,并且把它設置為可讀寫。另外如果升級成,對不用緩存的部分性能也會有提升,這就不在本文討論的范圍之內了。 現有一個系統是用Yii2框架開發的,Web服務器采用Nginx+php-fpm,由于沒有使用Nginx的反向代理緩存技術,用Apache的ab一壓就死掉了,QPS只能達到7或者8的水平,像這樣是無法支持高...

    callmewhy 評論0 收藏0
  • PHP-FPM,Nginx,FastCGI 之間的關系

    摘要:本文介紹三者之間的關系,以及反向代理和負載均衡的配置。先使用負載均衡模塊找到一臺主機,再使用模塊實現與這臺主機的交互。負載均衡配置該例定義了一個的負載均衡配置,通過反向代理指令應用這個配置。 本文介紹 PHP-FPM,Nginx,FastCGI 三者之間的關系,以及 Nginx 反向代理和負載均衡的配置。 PHP-FPM,Nginx,FastCGI 之間的關系 FastCGI 是一個協...

    sumory 評論0 收藏0

發表評論

0條評論

harryhappy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<