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如何获取自定义请求header头和URL参数详解

    Nginx如何获取自定义请求header头和URL参数详解

    这篇文章主要给大家介绍了关于Nginx如何获取自定义请求header头和URL参数的相关资料,本文适用于需要在nginx里获取http请求头信息或者传递的参数进行一些计算和处理的情况,需要的朋友可以参考下
    2022-07-07
  • Nginx反向代理学习实例教程

    Nginx反向代理学习实例教程

    nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可以参考下
    2021-10-10
  • Nginx下SSL证书安装部署步骤介绍

    Nginx下SSL证书安装部署步骤介绍

    大家好,本篇文章主要讲的是Nginx下SSL证书安装部署步骤介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • 使用nginx.exe时闪退的原因和解决方法

    使用nginx.exe时闪退的原因和解决方法

    最近使用老师给的nginx.exe时,点击nginx.exe突然屏幕就闪一下,经过一番排查,发现是端口被占用所导致的,所以本文就给大家讲讲端口被占用时的解决方法详细步骤,需要的朋友可以参考下
    2023-07-07
  • 详解Nginx轮询算法底层实现的方法

    详解Nginx轮询算法底层实现的方法

    这篇文章主要介绍了详解Nginx轮询算法底层实现的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Nginx worker_connections配置太低导致500错误案例

    Nginx worker_connections配置太低导致500错误案例

    这篇文章主要介绍了Nginx worker_connections配置太低导致500错误案例,需要的朋友可以参考下
    2015-04-04
  • Linux上搭载Nginx负载均衡配置使用案例详解

    Linux上搭载Nginx负载均衡配置使用案例详解

    这篇文章主要介绍了Linux上搭载Nginx负载均衡配置使用案例详解,针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance),需要的朋友可以参考下
    2022-01-01
  • nginx模块stream配置的具体使用

    nginx模块stream配置的具体使用

    stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息,本文主要介绍了nginx模块stream配置的具体使用,感兴趣的可以了解一下
    2023-10-10
  • Nginx服务器中为网站或目录添加认证密码的配置详解

    Nginx服务器中为网站或目录添加认证密码的配置详解

    这篇文章主要介绍了Nginx服务器中为网站或目录添加认证密码的配置详解,使用到了Apache的htpasswd工具,需要的朋友可以参考下
    2016-01-01
  • Nginx进行域名重写和泛域名解析配置的方法

    Nginx进行域名重写和泛域名解析配置的方法

    这篇文章主要介绍了Nginx进行域名重写和泛域名解析配置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论