nginx中斜杠(/)详解

Posted coding4all

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx中斜杠(/)详解相关的知识,希望对你有一定的参考价值。

不知大家日常在nginx配置时,是不是会对是否加斜杠充满疑惑?

配置location、proxy_pass时,加“/”与不加“/”的区别,今天我们通过实操去验证下。

talk is cheap, show me the code!!!


通过nginx代理访问地址:http://127.0.0.1/v1/pt/apply/page

  1. location、proxy_pass都不加斜杠
    location /v1 {
        proxy_pass http://127.0.0.1:8899;
    }

     实际访问代理地址:http://127.0.0.1:8899/v1/pt/apply/page

  2. location加斜杠,proxy_pass不加斜杠
    location /v1/ {
        proxy_pass http://127.0.0.1:8899;
    }

    实际访问代理地址:http://127.0.0.1:8899/v1/pt/apply/page

  3. location不加斜杠,proxy_pass加斜杠
    location /v1 {      
        proxy_pass http://127.0.0.1:8899/;
    }

    实际访问代理地址:http://127.0.0.1:8899//pt/apply/page

  4. location、proxy_pass都加斜杠
    location /v1/ {
        proxy_pass http://127.0.0.1:8899/;
    }

    实际访问代理地址:http://127.0.0.1:8899/pt/apply/page

  5. location不加斜杠,proxy_pass加"v1"
    location /v1 {
        proxy_pass http://127.0.0.1:8899/v1;
    }

    实际访问代理地址:http://127.0.0.1:8899/v1/pt/apply/page

  6. location加斜杠,proxy_pass加"v1"
    location /v1/ {
        proxy_pass http://127.0.0.1:8899/v1;
    }

    实际访问代理地址:http://127.0.0.1:8899/v1pt/apply/page

  7. location不加斜杠,proxy_pass加"v1/"
    location /v1 {
        proxy_pass http://127.0.0.1:8899/v1/;
    }

    实际访问代理地址:http://127.0.0.1:8899/v1/pt/apply/page

  8. location加斜杠,proxy_pass加"v1/"
    location /v1/ {
        proxy_pass http://127.0.0.1:8899/v1/;
    }

    实际访问代理地址:http://127.0.0.1:8899/v1/pt/apply/page

总结:

  • proxy_pass代理地址端口后无任何字符,转发后地址:代理地址+访问URL目录部分
  • proxy_pass代理地址端口后有目录(包括 / ),转发后地址:代理地址+访问URL目录部分去除location匹配目录(示例中的"v1"或"v1/")

以上是关于nginx中斜杠(/)详解的主要内容,如果未能解决你的问题,请参考以下文章

jquery 冒号转义 为啥双斜杠

Vscode在使用变量之前转义斜杠

带有斜杠的奇怪 Nginx 行为

nginx 重写URL尾部斜杠

如果没有斜杠,Nginx 会导致 301 重定向

Nginx中proxy_pass的斜杠(/)问题