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增添api接口的实现方法

    Nginx增添api接口的实现方法

    这篇文章给大家介绍了Nginx增添api接口的方法,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,具有一定的参考价值,需要的朋友可以参考下
    2023-10-10
  • 如何使用nginx充当mysql的负载均衡器

    如何使用nginx充当mysql的负载均衡器

    这篇文章主要介绍了使用nginx充当mysql的负载均衡器过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • LNMP编译安装之nginx安装配置方法图文教程

    LNMP编译安装之nginx安装配置方法图文教程

    这篇文章主要为大家详细介绍了LNMP编译安装之nginx安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 前端开发用得着的nginx配置(场景)

    前端开发用得着的nginx配置(场景)

    这篇文章主要介绍了前端开发用得着的nginx配置,前端的工作过程里,本地开发、提供测试环境,总得有个用着顺手的服务器软件,这个场景里nginx很流行,特分享下需要的朋友可以参考下
    2014-09-09
  • Nginx配置ssl证书(https)的全过程

    Nginx配置ssl证书(https)的全过程

    这篇文章主要介绍了Nginx配置ssl证书(https)的过程,在文中大家需要特别注意,如果有防火墙的话,记得开通443端口,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 如何使用Nginx解决跨域问题详解

    如何使用Nginx解决跨域问题详解

    本地运行一个项目,但是要访问外域的api接口,存在跨域问题,下面这篇文章主要给大家介绍了关于如何使用Nginx解决跨域问题的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • nginx location/区别详解

    nginx location/区别详解

    本文主要介绍了nginx location/区别详解,主要介绍了8中不同的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Nginx反向代理后无法获取客户端真实IP地址

    Nginx反向代理后无法获取客户端真实IP地址

    本文主要介绍了Nginx反向代理后无法获取客户端真实IP地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • nginx 伪静态化rewrite规则

    nginx 伪静态化rewrite规则

    用Nginx的朋友可以参考,加到nginx.conf相应主机server段配置中即可!
    2009-10-10
  • Nginx应用之Location路由反向代理及重写策略示例

    Nginx应用之Location路由反向代理及重写策略示例

    本篇文章主要介绍了Nginx应用之Location路由反向代理及重写策略示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论