<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Nginx的proxy_pass url 反向代理的配置

      說到 Nginx 就不得不說 Nginx 的反向代理是多么的好用,一個指令 proxy_pass 搞定反向代理,對于接口代理、負載均衡很是實用,但 proxy_pass 指令后面的參數很有講究。

      網上有很多什么絕對路徑、相對路徑的說法,其實在實際的應用中就分為兩種情況:

      url 只是 host

      這里指不包含 $uri ,如:

      • http://host - √
      • https://host - √
      • http://host:port - √
      • https://host:port - √
      • http://host/ - x
      • http://host:port/ - x

      這時候 location 匹配的完整路徑將直接透傳給 url ,如:

      // 訪問:   /                               后端:   /
      // 訪問:   /api/xx                         后端:   /api/xx
      // 訪問:   /api/xx?aa                      后端:   /api/xx?aa
      location / {
          proxy_pass http://node:8080;
      }
      
      // 訪問:   /api/                           后端:   /api/
      // 訪問:   /api/xx                         后端:   /api/xx
      // 訪問:   /api/xx?aa                      后端:   /api/xx?aa
      // 訪問:   /api-xx?aa                      后端:
      location /api/ {
          proxy_pass http://node:8080;
      }
      
      // 訪問:   /api/                           后端:   /api/
      // 訪問:   /api/xx                         后端:   /api/xx
      // 訪問:   /api/xx?aa                      后端:   /api/xx?aa
      // 訪問:   /api-xx?aa                      后端:   /api-xx?aa
      location /api {
          proxy_pass http://node:8080;
      }

      url 包含路徑

      注意,這里的路徑哪怕只是一個 / 也是存在的,如:

      • http://host - x
      • https//host/ - √
      • http://host:port - x
      • https://host:port/ - √
      • http://host/api - √
      • http://host/api/ - √

      當 proxy_pass url 的 url 包含路徑時,匹配時會根據 location 的匹配后的鏈接透傳給 url ,注意匹配后就是這樣:

       
      location 規則訪問的原始鏈接匹配之后的路徑
      location / /  
      location / /a a
      location / /a/b/c?d a/b/c?d
      location /a/ /a/  
      location /a/ /a/b/c?d b/c?d

       

       

       

      明白匹配之后的路徑后,在 proxy_pass url 包含路徑時,將會把匹配之后的路徑透傳給 url ,如:

       
       
      // 訪問:   /                               后端:   /
      // 訪問:   /api/xx                         后端:   /api/xx
      // 訪問:   /api/xx?aa                      后端:   /api/xx?aa
      location / {
          proxy_pass http://node:8080/;
      }
      
      // 訪問:   /api/                           后端:   /
      // 訪問:   /api/xx                         后端:   /xx
      // 訪問:   /api/xx?aa                      后端:   /xx?aa
      // 訪問:   /api-xx?aa                      未匹配
      location /api/ {
          proxy_pass http://node:8080/;
      }
      
      // 訪問:   /api                            后端:   /
      // 訪問:   /api/                           后端:   //
      // 訪問:   /api/xx                         后端:   //xx
      // 訪問:   /api/xx?aa                      后端:   //xx?aa
      // 訪問:   /api-xx?aa                      后端:   /-xx?aa
      location /api {
          proxy_pass http://node:8080/;
      }
      
      // 訪問:   /api/                           后端:   /v1
      // 訪問:   /api/xx                         后端:   /v1xx
      // 訪問:   /api/xx?aa                      后端:   /v1xx
      // 訪問:   /api-xx?aa                      未匹配
      location /api/ {
          proxy_pass http://node:8080/v1;
      }
      
      // 訪問:   /api/                           后端:   /v1/
      // 訪問:   /api/xx                         后端:   /v1/xx
      // 訪問:   /api/xx?aa                      后端:   /v1/xx
      // 訪問:   /api-xx?aa                      未匹配
      location /api/ {
          proxy_pass http://node:8080/v1/;
      }

      由以上規則可以看出,當 proxy_pass url 中包含路徑時,結尾的 / 最好同 location 匹配規則一致。

      當 proxy_pass 遇到正則

      當 location 以正則形式匹配時,proxy_pass 就不能以 / 結束了,也就是不能包含路徑了,比如錯誤的:

       
      location ~* ^/api/ {
          proxy_pass http://host/;
      }
      
      location / {
          if ($uri ~* ^/api/) {
              proxy_pass http://host/;
          }
      }

      解決辦法就是把鏈接中的路徑去掉。

       

      重寫代理鏈接 - url rewrite

      當原始鏈接(瀏覽器訪問的鏈接)和代理服務器鏈接規則不一致時,可以使用 Nginx URL Rewrite 功能去動態的重寫,如:

      location ~* ^/api/ {
          rewrite ^/api/(.*) /?path=$1 break;
          proxy_pass http://node:8080;
      }

      以上請求會把匹配 /api/ 的鏈接重寫為 /?path= 的鏈接透傳給 node:8080 服務,有意思的是當使用 rewrite 指令并且生效后,proxy_pass url 鏈接中的路徑會被忽略,如:

       
      // 訪問:   /                               后端:   /node/
      // 訪問:   /api                            后端:   /node/api
      // 訪問:   /api/                           后端:   /?path=
      // 訪問:   /api/a/b/c                      后端:   /?path=a/b/c
      location / {
          rewrite ^/api/(.*) /?path=$1 break;
          proxy_pass http://node:8080/node/;
      }

       

      posted @ 2022-10-23 14:15  cnkker.com  閱讀(1597)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产午夜福利视频第三区| 中文字幕久久精品波多野结| 久久99精品久久99日本| 手机看片AV永久免费| 萨迦县| 午夜福利精品国产二区| 国产午夜精品一区二区三| 久久久久久久一线毛片| 一区二区亚洲人妻精品| 亚洲人午夜精品射精日韩| 噜噜噜噜私人影院| 国产在线拍揄自揄拍无码视频| 亚洲嫩模一区二区三区| 亚洲国产成人久久综合人| 国产农村妇女毛片精品久久| 国产精品偷乱一区二区三区| 国产精品男女午夜福利片| 少妇高潮水多太爽了动态图| 久久精品夜夜夜夜夜久久| 天堂网av成人在线观看| 国产国拍亚洲精品永久软件| 云安县| 亚洲国产精品第一二三区| 国产色无码精品视频免费| 中文字幕无码免费久久| 亚洲一区二区av高清| 少妇办公室好紧好爽再浪一点 | 狠狠色丁香婷婷久久综合五月| 老司机亚洲精品一区二区| 国产精品中文字幕在线| 天天做天天爱夜夜爽毛片| 国产超高清麻豆精品传媒麻豆精品| 久久久久成人精品无码中文字幕| 无码欧亚熟妇人妻AV在线外遇| 沈阳市| 亚洲国产成人精品激情姿源| 华人在线亚洲欧美精品| 国产三级精品三级在专区| 日韩精品一区二区都可以| gogo无码大胆啪啪艺术| 在线精品视频一区二区三四 |