<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 網絡鏈路 很多情況都是k8s集群使用的traefik是沒有公網暴露面的。但是又想通過網絡訪問traefik服務,通常做法是traefik前面掛載一個lb服務將流量轉發到traefik主機上。 網絡鏈路: `客戶端` --> `lb(一或多個)` --> `traefik` --> `后端業務程序` # 配置 >[info] 演示的后端業務程序是nginx。方便查看 `X-Forwarded-For` 以及 `X-Real-IP` > 客戶端使用 `curl命令` 以及 `Google瀏覽器` 從上面的網絡鏈路可知,需要配置的地方有兩個。分別是 `lb` 以及 `traefik` 上。如果lb有多個的話,多個lb都需要配置的。 ## web(http)協議 >[info] 這里 lb 使用HTTP代理方式轉發。 優點:網絡鏈路清晰 缺點:效率沒有四層轉發快 ### lb配置 >[info] 該配置內容寫在 `http{}` 塊里面 ```conf upstream ingress_http { server 192.168.32.127:80; server 192.168.32.128:80; } server { listen 80; server_name _; location / { # 客戶端域名賦值給Host請求頭中傳給下游服務器 proxy_set_header Host $http_host; # 將 $remote_addr(客戶端IP地址) 賦值給 X-Real-IP 請求頭中傳給下游服務器 proxy_set_header X-Real-IP $remote_addr; # 將 $proxy_add_x_forwarded_for 賦值給 X-Forwarded-For 請求頭中傳給下游服務器 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://ingress_http; } } ``` ### traefik配置 >[info] 在traefik配置文件的 `entryPoints.web` 配置項下添加下面內容。IP寫成 `lb` 地址。 ```yaml entryPoints: web: address: ":80" # 添加以下的內容 forwardedHeaders: trustedIPs: - "192.168.32.128" - "192.168.32.129" ``` ### 驗證 curl 方法驗證 ```shell curl -H "Host: nginx.ecloud.com" http://192.168.32.188 ``` 瀏覽器驗證 ![](https://img.kancloud.cn/ef/17/ef17a65948956b5eec78f3eb4996c67d_1447x542.png) 查看后端業務nginx日志 ![](https://img.kancloud.cn/f2/09/f209151947031af3da855c6fadb50ac6_1901x282.png) ## webSecurity(https)協議 >[info] 這里 lb 使用TCP代理方式轉發,目前使用 HTTP 代理沒有成功過。 優點:效率高 缺點:只記錄客戶端IP及traefik地址,沒有記錄lb的IP地址 ### lb配置 >[info] 該配置內容寫在 `stream{}` 塊里面 ```conf upstream ingress_https { server 192.168.32.127:443 max_fails=3 fail_timeout=5s; server 192.168.32.128:443 max_fails=3 fail_timeout=5s; } server { listen 443; # 開啟proxy_protocol協議。必須有該參數 proxy_protocol on; proxy_pass ingress_https; access_log /var/log/nginx/ingress_https_tcp_access.log proxy; error_log /var/log/nginx/ingress_https_error.log; } ``` ### traefik配置 >[info] 在traefik配置文件的 `entryPoints.webSecurity` 配置項下添加下面內容。IP寫成 `lb` 地址。 ```yaml webSecurity: address: ":443" proxyProtocol: trustedIPs: - "192.168.32.128" - "192.168.32.129" ``` ### 驗證 使用curl驗證 ```shell curl -k -H "Host: nginx.ecloud.com" https://192.168.32.188 ``` 使用瀏覽器驗證 ![](https://img.kancloud.cn/6a/83/6a8313c74d181d4b682a0e7b054b2769_1378x366.png) 查看后端業務nginx日志 ![](https://img.kancloud.cn/9a/4e/9a4e62279294f9479547c921c152c389_1893x184.png)
                  <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>

                              哎呀哎呀视频在线观看