<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、原理說明 基于 Nacos 去隔離多個物理集群的,同時,在?Nacos 客戶端不需要做任何代碼改動的情況下,就可以實現環境的自動路由。 開始前,我們先做一些約束: * 一臺機器上部署的應用都在一個環境內; * 一個應用進程內默認情況下只連一個環境的 Nacos; * 通過某種手段可以拿到客戶端所在機器 IP; * 用戶對機器的網段有規劃; 基本原理是: * 網絡中 32 位的 IPV4 可以劃分為很多網段,如192.168.1.0/24,并且一般中大型的企業都會有網段規劃,按照一定的用途劃分網段。我們可以利用這個原理做環境隔離,即不同網段的 IP 屬于不同的環境,如192.168.1.0/24屬于環境A, 192.168.2.0/24屬于環境B等。 * Nacos 有兩種方式初始化客戶端實例,一種是直接告訴客戶端?Nacos 服務端的IP;另一種是告訴客戶端一個 Endpoint,客戶端通過 HTTP 請求到 Endpoint,查詢?Nacos 服務端的 IP 列表。這里,我們利用第二種方式進行初始化。 * 增強 Endpoint 的功能。在 Endpoint 端配置網段和環境的映射關系,Endpoint 在接收到客戶端的請求后,根據客戶端的來源 IP 所屬網段,計算出該客戶端的所屬環境,然后找到對應環境的 IP 列表返回給客戶端。如下圖 ![](https://box.kancloud.cn/13f18391001d8976f1af98378d90dc24_516x465.png) ## 二、一個環境隔離 Server 的示例 前面講了基于 IP 段做環境隔離的約束和基本原理,那么如何實現一個地址服務器呢。 最簡單的方法是基于Nginx實現,利用 Nginx 的 Geo 模塊,做 IP 端和環境的映射,然后利用Nginx 返回靜態文件內容。 * 安裝Nginx:[http://nginx.org/en/docs/install.html](http://nginx.org/en/docs/install.html) * 在nginx-proxy.conf 中配置?Geo 映射,參考這里: ~~~ geo $env {default ""; 192.168.1.0/24 -env-a; 192.168.2.0/24 -env-b;} ~~~ * 配置nginx根路徑及轉發規則,這里只需要簡單的返回靜態文件的內容: ~~~ # 在http模塊中配置根路徑 root /tmp/htdocs; # 在server模塊中配置 location / { rewrite ^(.*)$ /$1$env break; } ~~~ 復制 * 配置Nacos服務端IP列表配置文件,在/tmp/hotdocs/nacos目錄下配置以環境名結尾的文件,文件內容為IP,一行一個: ~~~ $ll /tmp/hotdocs/nacos/ total 0 -rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist -rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist-env-a -rw-r--r-- 1 user1 users 0 Mar 5 08:53 serverlist-env-b $cat /tmp/hotdocs/nacos/serverlist 192.168.1.2 192.168.1.3 ~~~ * 驗證 ~~~ curl 'localhost:8080/nacos/serverlist' 192.168.1.2 192.168.1.3 ~~~ 至此, 一個簡單的根據 IP 網段做環境隔離的示例已經可以工作了,不同網段的?Nacos 客戶端會自動獲取到不同的 Nacos 服務端 IP 列表,實現環境隔離。 這種方法的好處是用戶不需要配置任何參數,各個環境的代碼和配置是一樣的,但需要提供底層服務的同學做好網絡規劃和相關配置。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看