成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Nginx如何根據前綴路徑轉發到不同的Flask服務

瀏覽:358日期:2023-03-13 15:37:49
目錄
  • 開端
  • 解決一(設置SCRIPT_NAME)
  • 解決二(設置頭部X-Forwarded-Prefix再用ProxyFix調整WSGI環境)
  • 兩種解決的區別
    • nginx proxy_pass配置的區別
    • 為什么需要這樣處理
  • 總結

    開端

    想通過不同的前綴路徑經過nginx轉發到不同的服務上,比如 /user/轉發到用戶服務,/other/轉發到其他服務。

    首先配置nginx的location根據前綴匹配。

    server {    listen 80;    server_name localhost;    location /user/ {    proxy_pass http://127.0.0.1:5000; # 用戶服務    }	  location /other/ {    proxy_pass http://127.0.0.1:5001; # 其他服務    }}

    這樣訪問http://127.0.0.1:5000/user/xxx/就會轉發到用戶服務,訪問http://127.0.0.1:5000/other/xxx/就會轉發到其他服務。

    這樣就會有一個問題,flask application并不知道有前綴,所以使用url_for構造url的時候并不會自己添加前綴,要構造出正確帶前綴的url就需要把前綴加入到WSGI環境中的SCRIPT_NAME去。

    解決一(設置SCRIPT_NAME)

    gunicorn文檔上:

    可以把SCRIPT_NAME設置到環境變量中或者HTTP header中。

    通過docker部署設置SCRIPT_NAME在環境變量中,可以在docker-compose.yml中加入

    environment:  - SCRIPT_NAME=/user/

    或者把SCRIPT_NAME設置在header中可以在nginx配置中加上

    proxy_set_header SCRIPT_NAME /user/;

    gunicorn.wsgi處理請求的時候是這樣處理PATH_INFO和SCRIPT_NAME的:

    解決二(設置頭部X-Forwarded-Prefix再用ProxyFix調整WSGI環境)

    同樣的也可以ProxyFix中間件來調整WSGI環境,設置SCRIPT_NAME。

    來自werkzeug ProxyFix文檔:

    通過nginx設置頭部信息X-Forwarded-Prefix:

    proxy_set_header X-Forwarded-Prefix /user/;

    使用ProxyFix:

    from werkzeug.middleware.proxy_fix import ProxyFixapp = ProxyFix(app, x_prefix=1)

    還需要把nginx的proxy_pass修改下:

    server {    listen 80;    server_name example.com;    location /user/ {    proxy_pass http://127.0.0.1:5000/; # 用戶服務    }	  location /other/ {    proxy_pass http://127.0.0.1:5001/; # 其他服務    }}

    兩種解決的區別

    nginx proxy_pass配置的區別

    區別在于nginx的proxy_pass中結尾是否帶/。

    如果proxy_pass不帶uri,就是不帶/,則請求會原封不動的轉發給下一個服務。

    如果proxy_pass帶uri,則匹配的uri部分將會被修改為該proxy_pass中的uri。

    為什么需要這樣處理

    以我的理解是這樣的,請求進來通過gunicorn處理請求,gunicorn.wsgi中會根據SCRIPT_NAME來制定PATH_INFO,所以當解決一帶著SCRIPT_NAME=/user/,PATH_INFO=/user/xxx/經過處理后PATH_INFO會變成/xxx/

    而解決二中當gunicorn.wsgi處理請求時ProxyFix還沒對WSGI環境進行處理,所以SCRIPT_NAME是為空的,PATH_INFO則會一直是帶著SCRIPT_NAME前綴為/user/xxx/,是不能正確匹配到route的,所以把nginx proxy_pass改為uri形式使PATH_INFO能正確匹配。

    總結

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

    標簽: Nginx
    成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
    色婷婷综合久久久中文一区二区| 欧美在线观看18| 久久精品麻豆| 中文字幕一区二区三区在线观看| 91小视频免费看| 精品国产乱码久久久久久1区2区| 激情伊人五月天久久综合| 色综合久久久久综合体| 亚洲国产欧美日韩另类综合| 91理论电影在线观看| 精品欧美乱码久久久久久1区2区| 国产精品主播直播| 在线播放中文一区| 精品影视av免费| 欧美日韩中文国产| 久久99蜜桃精品| 欧美性大战久久| 久久福利视频一区二区| 欧美这里有精品| 蜜臀av一区二区在线免费观看| 91麻豆swag| 国产欧美一区二区三区在线看蜜臀| 91亚洲永久精品| 久久久五月婷婷| 成人黄色综合网站| 精品国产乱码久久久久久浪潮| 成人精品小蝌蚪| 91精品国产一区二区三区| 国产精品888| 欧美一三区三区四区免费在线看| 国产麻豆成人精品| 日韩三级视频在线观看| heyzo一本久久综合| 久久精品视频一区| 欧美网站在线| 亚洲精品国产高清久久伦理二区| 一区二区三区精品视频在线观看| 一区av在线播放| 免费在线欧美黄色| 亚洲综合色区另类av| 免费日韩av片| 老司机免费视频一区二区| 欧美日韩激情一区| 国产成人精品三级麻豆| 久久午夜羞羞影院免费观看| 99re在线精品| 亚洲欧洲av在线| 香蕉久久国产| 麻豆精品新av中文字幕| 91精品国产全国免费观看| 97se亚洲国产综合自在线不卡| 国产精品国产三级国产aⅴ入口 | 欧美高清一级片在线| 成人自拍视频在线| 国产精品二三区| 老司机一区二区三区| 国产在线视频不卡二| 久久久久久一二三区| 国内精品久久久久久久97牛牛| 樱花影视一区二区| 色猫猫国产区一区二在线视频| 国产乱码一区二区三区| 久久夜色精品一区| 国产一区二区三区四区老人| 亚洲午夜私人影院| 欧美特级限制片免费在线观看| 成人av资源网站| 18成人在线观看| 欧美视频中文字幕| 91尤物视频在线观看| 亚洲精品va在线观看| 欧美探花视频资源| 94-欧美-setu| 亚洲黄网站在线观看| 欧美日韩黄色影视| 牛夜精品久久久久久久99黑人 | 国产激情一区二区三区桃花岛亚洲| 欧美韩国日本综合| 久久婷婷丁香| 99精品国产91久久久久久| 亚洲综合色噜噜狠狠| 日韩一级片在线观看| 亚洲国产精品久久久久久女王| 免费观看91视频大全| 久久久久久日产精品| 久久精品1区| www.亚洲精品| 亚洲成av人片在线观看无码| 欧美一级片在线看| 国产欧美一区二区色老头| 国产精品911| 最新国产成人在线观看| 一本一道综合狠狠老| 不卡视频在线观看| 亚洲电影一区二区| 精品久久久久久最新网址| 亚洲一区二区三区涩| 成人性生交大片免费看在线播放| 一区二区久久久| 欧美tickling网站挠脚心| 久久精品女人| 欧美不卡一区| 久久国产婷婷国产香蕉| 国产精品国产三级国产三级人妇 | 亚洲综合区在线| 日韩一区二区免费在线电影| 99成人在线| 大尺度一区二区| 亚洲不卡一区二区三区| 久久伊人蜜桃av一区二区| 91久久精品国产91性色tv| 欧美日本一区| 国产一区二区毛片| 亚洲国产wwwccc36天堂| 久久精品一区二区三区四区| 色欧美日韩亚洲| 国产在线一区二区三区四区| 久久97超碰国产精品超碰| 国产精品久久午夜| 欧美精品在线一区二区三区| 99国产精品| 91在线视频免费观看| 美女mm1313爽爽久久久蜜臀| 中文字幕日韩精品一区| 日韩欧美亚洲国产精品字幕久久久| 国产精品亚洲一区| 欧美激情亚洲| 国产精品一区二区免费不卡 | 久久久久88色偷偷免费| 欧美亚洲国产一区二区三区| 精品91免费| 成人a免费在线看| 久久精品国产成人一区二区三区| 亚洲色大成网站www久久九九| 欧美精品一区二区三区在线 | 国产亚洲精品超碰| 欧美人与性动xxxx| 亚洲欧美精品在线观看| 午夜久久资源| 丁香亚洲综合激情啪啪综合| 美女精品一区二区| 一区二区三区精品在线| 国产亚洲女人久久久久毛片| 欧美一区二区三区四区在线观看| 日本韩国精品在线| 亚洲视频成人| 欧美日韩三区四区| 成人午夜av电影| 激情偷乱视频一区二区三区| 天堂资源在线中文精品| 亚洲私人黄色宅男| 国产午夜精品一区二区三区嫩草| 91精品国产色综合久久不卡蜜臀 | 91精品在线免费| 久久中文娱乐网| 亚洲日本视频| 亚洲欧美日韩小说| 99精品福利视频| 国产精品沙发午睡系列990531| www.亚洲精品| 欧美精品一区二区不卡| 国产欧美日韩伦理| 欧美日韩精品不卡| 成人午夜在线免费| 久久电影国产免费久久电影| 五月婷婷综合在线| 久久久久久久精| 欧美α欧美αv大片| 日韩一区二区三区四区五区六区| 欧美群妇大交群的观看方式| 欧美性生活大片视频| 色婷婷久久综合| 色综合久久88色综合天天免费| 久久精品人人| 色播五月激情综合网| 在线观看亚洲一区| 欧美在线不卡一区| 欧美日本在线播放| 欧美男人的天堂一二区| 欧美日韩久久久久久| 欧美无乱码久久久免费午夜一区| 亚洲午夜极品| 亚洲精品国产无天堂网2021| 菠萝蜜视频在线观看一区| 日韩精品资源二区在线| 在线亚洲观看| 欧美视频一区| 亚洲高清自拍| 99精品视频免费观看| 在线视频国内自拍亚洲视频| 亚洲激情另类| 国产日韩欧美一区在线| 亚洲综合好骚| 日本福利一区二区| 欧美日韩综合在线| 91精品国产色综合久久不卡蜜臀 | 欧洲生活片亚洲生活在线观看| 在线亚洲人成电影网站色www| 欧美在线免费观看亚洲| 911精品国产一区二区在线|