Nginx中proxy_pass末尾带斜杠/和不带的区别

 更新时间:2026年02月04日 09:13:16   作者:PieDi  
本文主要介绍了Nginx中proxy_pass末尾带斜杠/和不带的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

nginx的代理的路径经常会让人摸不着头脑,所以打算整理一下该篇笔记,介绍nginx配置文件中proxy_pass路径后带/与不带/的区别,方便在自己需要时进行阅读查阅。

假如要将8080端口上的请求转发至3000端口。

以3000端口为例,编写proxy_pass有两种形式。

  1. 无斜杆:http://localhost:3000
  2. 有斜杆:http://localhost:3000/

假设前端请求为http://localhost:8080/get/test

我们暂且把/get/test称为请求部分。

不带 "/'

 server {
        listen 8080;
        server_name localhost;

        location /get {
            proxy_pass http://localhost:3000;
        }
        #或者
        location /get/ {
            proxy_pass http://localhost:3000;
        }
        #结果都是 将http://localhost:8080/get/test转发去http://localhost:3000/get/test
    }

proxy_pass:http://localhost:3000

无斜杆location匹配到的部分也属于请求的部分。

location无论用/get还是用/get/只要匹配上之后都会将整个请求部分/get/test加到proxy_pass上。

http://localhost:3000+/get/test等于请求http://localhost:3000/get/test

带 "/"

server {
  listen 8080;
  server_name localhost;
  location /get {
     # 结果是 将http://localhost:8080/get/test转发去http://localhost:3000//test,出错~
     proxy_pass http://localhost:3000/;
   }
   #或者
   location /get/ {
     # 结果是 将http://localhost:8080/get/test转发去http://localhost:3000/test
     proxy_pass http://localhost:3000/;
   }
 }

proxy_pass:http://localhost:3000/

有斜杆location匹配到的部分只用于匹配,不属于请求部分,需要在请求部分将location匹配到的部分剔除。

location用/get则是http://localhost:3000/+(/get/test -/get)等于请求http://localhost:3000//test

location用/get/则是http://localhost:3000/+(/get/test -/get/)等于请求http://localhost:3000/test

"/" 后面还有路径信息

server {
  listen 8080;
  server_name localhost;
  location /get {
    # 结果是 将http://localhost:8080/get/test转发去http://localhost:3000/abc/test
    proxy_pass http://localhost:3000/abc;
   }
   #或者
   location /get/ {
     # 结果是 将http://localhost:8080/get/test转发去http://localhost:3000/abctest,出错~
     proxy_pass http://localhost:3000/abc;
   }
}

proxy_pass:http://localhost:3000/abc

有斜杆的规则,在请求部分剔除location后加在上面即可。

location用/get则是http://localhost:3000/abc+(/get/test -/get)等于请求http://localhost:3000/abc/test

location用/get/则是http://localhost:3000/abc+(/get/test -/get/)等于请求http://localhost:3000/abctest

总结

  1. 不带 / 时,可以理解为简单的全路径拼接,不作任何处理
  2. 带 / 时, proxy_pass + (原路径 - 匹配规则)

到此这篇关于Nginx中proxy_pass末尾带斜杠/和不带的区别的文章就介绍到这了,更多相关Nginx中proxy_pass斜杠/内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx实现https网站配置代码实例

    Nginx实现https网站配置代码实例

    这篇文章主要介绍了Nginx实现https网站配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Nginx 中的地址重写功能(使用方法)

    Nginx 中的地址重写功能(使用方法)

    Nginx 地址重写(rewrite)是 Nginx 服务器中一个非常实用的功能,它可以帮助我们实现 URL 的重定向、隐藏真实文件路径、优化网站结构等,本文将详细介绍 Nginx 地址重写的相关知识和使用方法,感兴趣的朋友一起看看吧
    2024-01-01
  • 详解nginx服务器绑定域名和设置根目录的方法

    详解nginx服务器绑定域名和设置根目录的方法

    这篇文章主要介绍了详解nginx服务器绑定域名和设置根目录的方法,nginx服务器绑定域名以及设置根目录非常方便,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 深入理解nginx如何实现高性能和可扩展性

    深入理解nginx如何实现高性能和可扩展性

    这篇文章主要介绍了深入理解nginx如何实现高性能和可扩展性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Nginx设置wordpress伪静态的方法示例

    Nginx设置wordpress伪静态的方法示例

    伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,这篇文章主要介绍了Nginx设置wordpress伪静态的方法示例,非常具有实用价值,需要的朋友可以参考下
    2018-09-09
  • 解读nginx -s reload会产生什么影响

    解读nginx -s reload会产生什么影响

    这篇文章主要介绍了nginx -s reload会产生什么影响,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • nginx主动健康检查功能实现

    nginx主动健康检查功能实现

    nginx_upstream_check_module是一个Nginx的第三方模块,它可以实现 Nginx的主动健康检查功能,本文将介绍一个基于 Nginx 的第三方模块 nginx_upstream_check_module,它可以实现 Nginx 的主动健康检查功能,可以帮助我们更加有效地管理后端服务器,需要的朋友可以参考下
    2023-05-05
  • 通过nginx反向代理来调试代码的实现

    通过nginx反向代理来调试代码的实现

    这篇文章主要介绍了通过nginx反向代理来调试代码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Nginx配置SSL证书的方法步骤

    Nginx配置SSL证书的方法步骤

    本文主要介绍了Nginx配置SSL证书,成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Nginx服务器,感兴趣的可以了解一下
    2024-02-02
  • nginx 配置服务启动的教程详解

    nginx 配置服务启动的教程详解

    本文给大家详细介绍了nginx 配置服务启动的相关知识,非常不错,具有一定的参考借鉴价值,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05

最新评论