zoukankan      html  css  js  c++  java
  • nginx location proxy_pass 后面的url 加与不加/的区别

    这里我们分4种情况讨论

    这里我们请求的网站为:192.168.1.123:80/static/a.html

    整个配置文件是

    复制代码
    server{
    port  80,
    server name  192.168.1.123
    
    location /static{
    proxy_pass  192.168.2.321:81
    }
    
    location /static{
    proxy_pass  192.168.2.321:81/
    }
    
    location /static/{
    proxy_pass  192.168.2.321:81
    }
    
    location /static/{
    proxy_pass  192.168.2.321:81/
    }
    复制代码

    我们分开来讲:

    第一种:

    location后没有/      转发网站没有/
    复制代码
    #192.168.1.123->server name
    # :80 ---------> port
    #/statc ------->location
    #/a.html ------>proxy_pass 
    
    location /static{
    proxy_pass  192.168.2.321:81
    }
    复制代码
    最后网址经过nginx转向到的网址是 192.168.2.321:81/static/a.html

    第二种:

    location后没有/      转发网站有/
    复制代码
    #192.168.1.123---->server name
    # :80 ------------> port
    #/statc ---------->location
    #/a.html --------->proxy_pass 
    
    location /static{
    proxy_pass  192.168.2.321:81/
    }
    复制代码
    最后网址经过nginx转向到的网址是 192.168.2.321:81/a.html

    第三种:
    location后有/      转发网站没有/
    复制代码
    #192.168.1.123-->server name
    # :80 ------------> port
    #/statc/ ---------->location
    #a.html --------->proxy_pass 
    
    location /static/{
    proxy_pass  192.168.2.321:81
    }
    复制代码
    最后网址经过nginx转向到的网址是 192.168.2.321:81/static/a.html
    第四种:
    location后有/      转发网站有/
    复制代码
    #192.168.1.123-->server name
    # :80 ------------> port
    #/statc/ ---------->location(path1)
    #a.html --------->proxy_pass (path2)
    
    location /static/{
    proxy_pass  192.168.2.321:81/
    }
    复制代码
    最后网址经过nginx转向到的网址是 192.168.2.321:81/a.html

    总结:
    从这四种我们可以的看出,当nginx里面匹配时可以把端口后的参数分为path1+path2(其中我在上方标注的location属于path1,proxy_pass属于path2)
    proxy_pass  
    里面是ip:port+/时nginx最后匹配的网址是 proxy_pass的内容加上path2
    里面是ip:port时nginx最后匹配的网址是 proxy_pass的内容加上path1+path2

  • 相关阅读:
    Django创建模型。
    Kubernetes APIService资源
    应用系统管理风险
    [Golang] go list命令查看依赖的版本
    [Golang] 升级gin框架和jwtgo
    [Git] 解决git错误 OpenSSL SSL_read: Connection was reset, errno 10054
    [Github] 配置ssh免密码登录解决 You've successfully authenticated, but GitHub does not provide shell access.
    go循环遍历小坑
    Go 字符串拼接6种,最快的方式 strings.builder
    uniapp安卓真机调试提示检测不到手机【解决办法】
  • 原文地址:https://www.cnblogs.com/deny/p/14207029.html
Copyright © 2011-2022 走看看