Nginx - proxy_passパスの一意の接合規則

1587 ワード

現在、Nginxは主に逆エージェントとして使用されているが、最近proxy_passを構成する際にいくつかの問題に遭遇したことがある.実験後、多くの複雑なルールの背後には本質的に1つのルールしかないことが分かった.
重要な法則.
いくつかの文章を見て、まとめたルールproxy_passの後にURLパス情報(例えば//xxxなど)がない場合、リバースエージェントのアドレスにはlocationのマッチング部分が含まれます.そうしないと、マッチング後の残りのパスPS:上が最も重要で唯一のルールです.覚えておいてください.
多様な状況検証
仮定要求:http://localhost/online/wxapi/test/loginSwitch
第一のケースproxy_passの末尾には/があります
location /online/wxapi/ {
        proxy_pass http://localhost:8080/;
        proxy_set_header X-Real-IP $remote_addr;
}

エージェント後の実際のアドレス:http://localhost:8080/test/loginSwitch
2つ目のケースproxy_pass最後に/はありませんでした
location /online/wxapi/ {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
}

エージェント後の実際のアドレス:http://localhost:8080/online/wxapi/test/loginSwitch
3つ目のケースproxy_pass最後に/web
location /online/wxapi/ {
        proxy_pass http://localhost:8080/web;
        proxy_set_header X-Real-IP $remote_addr;
}

エージェント後の実際のアドレス:http://localhost:8080/webtest/loginSwitch
注意:接合の残りの部分なので、パスにはwebtestなどの単一語の接合がある可能性があります.
第四のケースproxy_pass最後に/web/
location /online/wxapi/ {
        proxy_pass http://localhost:8080/web/;
        proxy_set_header X-Real-IP $remote_addr;
}

エージェント後の実際のアドレス:http://localhost:8080/web/test/loginSwitch
リファレンス
  • nginx proxy_pass転送パス