一、反向代理实例1
1、实现效果
打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中
2、准备工作
(1)在 Linux 系统中安装 Tomcat,使用默认端口 8080
1 2 | tomcat 安装文件放到 liunx 系统中,解压 进入 tomcat 的 bin 目录中, . /startup .sh 启动 tomcat 服务器 |
(2)对外开发访问的端口
1 2 | firewall-cmd --add-port= 8080 /tcp --permanent firewall-cmd –reload |
查看已经开放的端口号
1 | firewall-cmd --list-all |
(3)在 windows 系统中通过浏览器访问 Tomcat 服务器
3、访问过程的分析
4、具体配置
(1)在 windows 系统的 hosts 文件进行域名和 IP 对应关系的配置
添加内容在 hosts 文件中
(2)在 nginx 进行请求转发的配置(反向代理配置)
5、测试效果
二、反向代理实例2
1、实现效果
实现效果:使用 nginx 反向代理, 根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001,
访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8080
访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8081
2、准备工作
(1)准备两个 Tomcat 服务器,一个 8080 端口,一个 8081 端口
(2)创建文件夹和测试页面
3、具体配置
(1)找到 nginx 配置文件,进行反向代理配置
(2)开放对外访问的端口号 9001, 8080,8081
4、最终测试
5、location 路径映射
location 该指令用于匹配 URL。
语法如下:
location [= | ~ | ~* | ^~] uri{
}
优先级关系:
1 | (location = ) > (location /xxx/yyy/zzz ) > (location ^~) > (location ~,~*) > (location /起始路径) > (location /) |
(1)= 匹配
location / {
#精准匹配,主机名后面不能带任何字符串
#例如www.baidu.com不能是www.baidu.com/id=xxx
}
(2)通用匹配
location /xxx {
#匹配所有以/xxx开头的路径
#例如127.0.0.1:8080/xxx xxx可以为空,为空则和=匹配一样
}
(3)正则匹配
location ~ /xxx {
#匹配所有以/xxx开头的路径
}
(4)匹配开头路径
location ^~ /xxx/xx {
#匹配所有以/xxx/xx开头的路径
}
(5)匹配结尾路径
location ~* \.(gif/jpg/png)$ {
#匹配以.gif、.jpg或者.png结尾的路径
}
说明:
1、 = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、 ~:用于表示 uri 包含正则表达式,并且区分大小写。
3、 ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、 ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2019-08-25 JavaScript 属性操作
2019-08-25 JavaScript 事件(基础)
2019-08-25 JavaScript 获取页面元素
2019-08-25 JavaScript API 与 DOM