当前位置: 首页 > news >正文

Nginx 配置文件中 location、proxy_pass最后的斜杠/作用

1.搭建一个简单的sprigboot+thymeleaf项目

写个controller

@RequestMapping("/login")
public String toLogin() {return "login";
}

写一个login.html页面

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="utf-8" name="viewport"content="width=device-width, initial-scale=1, maximum-scale=1"></meta><title>bootdemo</title>
</head><body ><h1>HELLO LANREN312....</h1>
</body><script th:inline="javascript"></script></html>

2.把项目打包丢到虚拟机上

项目访问地址:
http://192.168.1.118:9235/login
http://192.168.1.118:9235/login3

3.nginx配置全地址

location /lanren312/ {					proxy_pass http://192.168.1.118:9235/login/;				
}					location /lanren313/ {					proxy_pass http://192.168.1.118:9235/login3/;				
}	

项目访问地址: 
http://192.168.1.118/lanren312
http://192.168.1.118/lanren313

4.nginx配置ip:端口

location /lanren/ {					proxy_pass http://192.168.1.118:9235/;				
}

项目访问地址: 
http://192.168.1.118/lanren/login    转发地址:http://192.168.1.118:9235/login
http://192.168.1.118/lanren/login3  转发地址:http://192.168.1.118:9235/login3

如果proxy_pass末尾有斜杠/,把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址

location目录最后有斜杠/只能完全匹配目录,没有斜杠/不仅可以匹配目录还对目录进行模糊匹配。

5.nginx的proxy_pass去掉后面的斜杠/

location /lanren/ {					proxy_pass http://192.168.1.118:9235;	
}

请求地址:http://192.168.1.118/lanren/login  转发地址:http://192.168.1.118:9235/lanren/login。

如果proxy_pass末尾无斜杠/,把path拼接到proxy_pass目标地址

location目录最后有斜杠/只能完全匹配目录,没有斜杠/不仅可以匹配目录还对目录进行模糊匹配。

可以看到,没找到对应的页面。为了验证转发地址,在controller中单独再写一个(/lanren/login)请求。再去请求 http://192.168.1.118/lanren/login,验证成功。

请求 http://192.168.1.118/lanren/login3 ,页面还是报错,因为没有单独写(/lanren/login3)。

如果proxy_pass末尾有斜杠/,把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址
如果proxy_pass末尾无斜杠/,把path拼接到proxy_pass目标地址


location目录最后有斜杠/只能完全匹配目录,没有斜杠/不仅可以匹配目录还对目录进行模糊匹配。

6、总结

参考博客:Nginx 配置文件中字符 “/“ 的巨大作用-CSDN博客

# http://192.168.1.118/lanren01/login  转发地址:http://192.168.1.118:9235/lanren01/login	
location /lanren01/ {					proxy_pass http://192.168.1.118:9235;		 	
}
# http://192.168.1.118/lanren02/login  转发地址:http://192.168.1.118:9235/login	
location /lanren02/ {					proxy_pass http://192.168.1.118:9235/;			
}
# http://192.168.1.118/lanren03/login  转发地址:http://192.168.1.118:9235/lanren03/login	  
# http://192.168.1.118/lanren0366/login  转发地址:http://192.168.1.118:9235/lanren0366/login	  
location /lanren03 {					proxy_pass http://192.168.1.118:9235;		 		
}
# http://192.168.1.118/lanren04/login  转发地址:http://192.168.1.118:9235//login	  --这里和02是一样的,只是多了一个斜杠/
# http://192.168.1.118/lanren0466/login  转发地址:http://192.168.1.118:9235/66/login
location /lanren04 {					proxy_pass http://192.168.1.118:9235/;		 		
}# http://192.168.1.118/lanren05/login 转发地址:http://192.168.1.118:9235/kkklogin, -- 这里的kkk和login 之间没有斜杠
location /lanren05/ {					proxy_pass http://192.168.1.118:9235/kkk;		 		
}
# http://192.168.1.118/lanren06/login 转发地址:http://192.168.1.118:9235/kkk/login,
location /lanren06/ {					proxy_pass http://192.168.1.118:9235/kkk/;		 		
}
# http://192.168.1.118/lanren07/login 转发地址:http://192.168.1.118:9235/kkk/login,
location /lanren07 {					proxy_pass http://192.168.1.118:9235/kkk;		 		
}
# http://192.168.1.118/lanren08/login 转发地址:http://192.168.1.118:9235/kkk//login, -- 这里的双斜杠
location /lanren08 {					proxy_pass http://192.168.1.118:9235/kkk/;	
}

 附上一部分测试截图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 仿RabbitMQ实现消息队列
  • 按图搜索的精准营销:基于拍立淘API返回值的用户画像
  • MySQL的基本语法记录
  • P1919 【模板】高精度乘法 | A*B Problem 升级版、P3803 【模板】多项式乘法(FFT)、P1595 信封问题(圆排列、错位排列)
  • 转行大模型成功进字节了!48k*15薪!
  • knowLedge-VueCLI项目中环境变量的定义与使用
  • 用C#实现连续打印pdf文件
  • 一起学习LeetCode热题100道(40/100)
  • LlamaIndex-milvus-RAG
  • 基于vue框架的yit商城uwd1i(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 【产品经理】竞品分析怎么理解?拆解一下
  • 万字干货!手把手教你如何训练超大规模集群下的大语言模型
  • 【STM32嵌入式系统设计与开发拓展】——15_ADC
  • 重修设计模式-行为型-状态模式
  • Java面试八股之什么是消息队列
  • 分享一款快速APP功能测试工具
  • 230. Kth Smallest Element in a BST
  • bearychat的java client
  • JavaScript创建对象的四种方式
  • Java多态
  • Java基本数据类型之Number
  • Laravel核心解读--Facades
  • ng6--错误信息小结(持续更新)
  • python 学习笔记 - Queue Pipes,进程间通讯
  • 百度地图API标注+时间轴组件
  • 高性能JavaScript阅读简记(三)
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 网络应用优化——时延与带宽
  • 线上 python http server profile 实践
  • 新书推荐|Windows黑客编程技术详解
  • 追踪解析 FutureTask 源码
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ######## golang各章节终篇索引 ########
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $.each()与$(selector).each()
  • (1)Jupyter Notebook 下载及安装
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (学习日记)2024.01.19
  • (转)VC++中ondraw在什么时候调用的
  • (转)大道至简,职场上做人做事做管理
  • (转)关于pipe()的详细解析
  • (转载)利用webkit抓取动态网页和链接
  • .dwp和.webpart的区别
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET MVC第五章、模型绑定获取表单数据