Nginx中proxy_pass指令斜杠的作用及说明

 更新时间:2024年05月14日 14:31:19   作者:way_more  
这篇文章主要介绍了Nginx中proxy_pass指令斜杠的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

在使用Nginx的proxy_pass指令时,添加或不添加斜杠(/)会影响代理请求的行为

下面我就详细说明下,防止大家在配置的时候出现问题

没有斜杠

当proxy_pass后面没有斜杠时,代理服务器将会保留原始URI的路径,并将其追加到proxy_pass指定的后端服务器地址中。

简单来说,当proxy_pass代理地址端口后没有斜杠(/)和目录,转发后的地址就是代理服务器地址加请求的URL路径

举个例子

加入nginx服务器的地址是:192.168.30.120

配置如下

location /api {
        proxy_pass http://192.168.30.121:8083;
}

proxy_pass的代理地址只有ip和端口,后面没有斜杠和目录

这时候我们请求http://192.168.30.120:80/api/a,那么会转发到http://192.168.30.121:8083/api/a

相当于把路径直接拼接到我们的代理服务器地址

有斜杠

当proxy_pass后面添加了斜杠(/)时,那么会把匹配 location 的内容从请求路径中剔除,然后将剩下的路径拼接到proxy_pass的地址

举个例子

加入nginx服务器的地址是:192.168.30.120

location /api {
        proxy_pass http://192.168.30.121:8083/;
}

可以看到,proxy_pass的代理地址后有斜杠(/),这时候我们请求http://192.168.30.120:80/api/a,那么会转发到http://192.168.30.121:8083/a,路径中的/api会被剔除

还有一种情况, proxy_pass的结尾没有斜杠,但是ip端口后有斜杠,那么location 的路径会被剔除吗?

答案是会的

举个例子

配置如下

location /api {
        proxy_pass http://192.168.30.121:8083/test;
}

我们请求http://192.168.30.120:80/api/a,会被转发到http://192.168.30.121:8083/test/a,/api依旧是被剔除的

注意

nginx把location 地址剔除是包括/斜杠的,所以如果我们的配置如下

location /api/ {
        proxy_pass http://192.168.30.121:8083/test;
}

那么/api/就会被剔除,注意这里因为我们在/api后面也加上了/,那么会把路径中api的前后/斜杠也剔除

比如我们请求http://192.168.30.120:80/api/a,那么会被转发到http://192.168.30.121:8083/testa

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx的限流和网关gatway限流详解

    nginx的限流和网关gatway限流详解

    这篇文章主要介绍了nginx的限流和网关gatway限流,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    这篇文章主要介绍了Nginx+Tomcat搭建高性能负载均衡集群的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • nginx的keepalive相关参数使用源码解读

    nginx的keepalive相关参数使用源码解读

    这篇文章主要为大家介绍了nginx的keepalive相关参数使用源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Nginx实现防盗链的多种方式

    Nginx实现防盗链的多种方式

    防盗链指的是防止其他网站未经许可直接引用你的资源(如图片、音视频文件、文档等),这样做不仅能有效节约带宽,还能防止未经授权的内容被滥用,本文给大家介绍了Nginx实现防盗链的多种方式,需要的朋友可以参考下
    2025-01-01
  • nginx lua集成kafka的实现方法

    nginx lua集成kafka的实现方法

    这篇文章主要介绍了nginx lua集成kafka的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量,要使apache服务器做对同一IP地址的连接限制,需要mod_limitipconn来实现。一般需要手动编译。不过模块作者也提供了一些编译好的模块,根据自己的apache版本可以直接使用
    2012-11-11
  • Nginx代理Partainer的实现

    Nginx代理Partainer的实现

    本文主要介绍了Nginx代理Partainer的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • OpenResty中实现按QPS、时间范围、来源IP进行限流的方法

    OpenResty中实现按QPS、时间范围、来源IP进行限流的方法

    OpenResty是一个基于Nginx与Lua的高性能Web平台,它通过LuaJIT在Nginx中运行高效的Lua脚本和模块,可以用来处理复杂的网络请求,并且支持各种流量控制和限制的功能,这篇文章主要介绍了OpenResty中实现按QPS、时间范围、来源IP进行限流,需要的朋友可以参考下
    2024-02-02
  • 讨论nginx location 顺序问题

    讨论nginx location 顺序问题

    在有一次配置时发现,请求 uri 明明是符合了前缀匹配 ^~ 规则,但 nginx 却没有使用,这让我对上述结论产生了疑惑。后续通过调研、实践后发现,上述结论可以说对,但也不对,是不是更疑惑了?没关系,看完这篇文章你就知道我为什么会这样说了
    2022-05-05
  • Nginx proxy、rewrite、alias配置过程

    Nginx proxy、rewrite、alias配置过程

    这篇文章主要介绍了Nginx proxy、rewrite、alias配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06

最新评论