Nginx實(shí)現(xiàn)多路由融合到一個(gè)路由

問(wèn)題

@[java] @[代碼] @[巧妙]@[Nginx]

我們采用目前主流的分模塊或者說(shuō)組件開發(fā)。按照功能模塊,把后端系統(tǒng)分為了若干個(gè)組件,每個(gè)組件有自己獨(dú)立的服務(wù)器部署。如果某個(gè)組件掛掉,不會(huì)影響其他組件的正常使用。但是,問(wèn)題來(lái)了:

客戶端在使用的時(shí)候,要記大量的不同IP和端口,非常麻煩,有沒(méi)有一種方法,讓后端的組件配置對(duì)于前端來(lái)說(shuō)是透明的呢?

解決方案

我們引入Nginx的反向代理

做準(zhǔn)備

  • 安裝nginx(網(wǎng)上一抓一大把)
  • 啟動(dòng)nginx(網(wǎng)上一抓一大把)

寫代碼

在nginx的配置文件nginx.conf 中,加入配置如下:

本來(lái)訪問(wèn) http://localhost/icloud-data/data , 配置完后,只需要訪問(wèn)localhost/data即可
本來(lái)訪問(wèn) http://localhost/icloud-device/device, 配置完后,只需要訪問(wèn)localhost/device即可

server {
        listen        80;
        listen       localhost;
        server_name  somename  alias  another.alias;
        
    location / {
            root   html;
            index  index.html index.htm;
        }
        location /data {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-data/data;
        }
    location /collect {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-data/collect;
        }
    location /device {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-device/;
        }
    }

配置完后,不需要重啟nginx。只需要nginx -s reload 一下即可


在這個(gè)基礎(chǔ)上,如果還想實(shí)現(xiàn)負(fù)載均衡,再配置一個(gè)

upstream localhost { 
      server  ip1:port1;
      server  ip2:port2;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評(píng)論 19 139
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽過(guò)Nginx?那么一定聽過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,042評(píng)論 24 1,002
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 主題:在人生重要的領(lǐng)域開展主題閱讀 讀萬(wàn)卷書,行萬(wàn)里路。 回想上學(xué)那么多年,真的沒(méi)有讀幾本書,我讀過(guò)唯一一本文學(xué)作...
    MarinaZhang閱讀 273評(píng)論 0 1
  • 這周最打擊我的不是看不懂?dāng)?shù)學(xué)題 也不是英語(yǔ)聽寫不及格 而且一個(gè)我覺(jué)得和我關(guān)系挺好的人 說(shuō)我哪怕做再多的題考的也還不...
    Big頭嘻嘻閱讀 176評(píng)論 0 0

友情鏈接更多精彩內(nèi)容