nginx反向代理配置
文章目录
- 1.反向代理介绍
- 2. 第一个实例
- 2.1 实现效果
- 2.2 准备工作
- (1) 在linux系统中安装tomcat,使用默认端口8080
- (2) 修改主机映射
- (3) 修改nginx配置
- (4) 最终效果
- 3. 第二个实例
- 3.1 实现效果
- 3.2.准备工作
- 3.2.1 准备两个tomcat
- 3.2.2 创建文件夹和测试页面
- 3.2.3 测试结果
- 附:location指令说明
1.反向代理介绍
客户端对代理是无感知的,只需将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
2. 第一个实例
2.1 实现效果
浏览器访问www.123.com
,访问nginx的地址,跳到tomcat
2.2 准备工作
(1) 在linux系统中安装tomcat,使用默认端口8080
下载tomcat安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gz
解压 tar -zxvf apache-tomcat-8.5.70.tar.gz
进入tomcat的bin目录,启动tomcat
cd bin
./startup.sh
对外开放访问的端口
firewall-cmd --add-port=8080/tcp --permanent
(2) 修改主机映射
在hosts文件中加上映射
PS:域名解析规则:主机先找到hosts文件中的映射,如果没有,就找网络上DNS
(3) 修改nginx配置
(4) 最终效果
3. 第二个实例
3.1 实现效果
使用nginx反向代理,根据访问的路径不同跳转到不同端口的服务中
nginx监听端口为9001
访问 http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问 http://127.0.0.1:8001/vod/ 直接跳转到127.0.0.1:8081
3.2.准备工作
3.2.1 准备两个tomcat
(1)修改service.xml配置文件
(2)开放8081端口
firewall-cmd --add-port=8080/tcp --permanent
(3)重启防火墙
service firewalld restart
3.2.2 创建文件夹和测试页面
在webapps下创建edu文件夹,放入html文件
3.3 具体配置
(1)找到nginx配置文件,进行反向代理配置
server {
listen 9001;
server_name 172.29.34.23;
location ~ /edu {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod {
proxy_pass http://127.0.0.1:8081;
}
}
(2)开放9001端口
(3)重启nginx
3.2.3 测试结果
附:location指令说明
该指令用于匹配URL。
语法如下:
- =: 用于不包含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求
- ~:用于表示uri包含正则表达式,并且区分大小写
- ~* :*用于表示uri包含正则表达式,并且不区分大小写
- ^~: 用于不包含正则表达式的uri前,要求nginx服务器找到uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配
注意:如果uri有正则表达式,必须有 ~* 或 ~
CSDN-Ada助手: 恭喜您写了第20篇博客!对于组合模式的介绍,您的讲解清晰易懂,让我受益匪浅。希望您能继续保持创作的热情,分享更多有价值的内容。或许下一步可以考虑深入探讨组合模式在实际项目中的应用案例,或者结合其他设计模式进行比较分析,让读者更好地理解和运用。期待您更多的精彩作品!
CSDN-Ada助手: 恭喜您写了第18篇博客!标题为“适配器模式介绍”的博文内容非常有意思。适配器模式是一个常用的设计模式,通过它可以解决接口之间不兼容的问题,提高代码的复用性和扩展性。您在博文中对适配器模式的原理和应用进行了清晰的阐述,对读者来说非常有帮助。 同时,我也想给您提一些建议,希望对您以后的创作有所帮助。首先,可以考虑加入一些实际的案例或者代码示例,以便读者更好地理解适配器模式的实际运用。其次,可以对适配器模式进行一些深入的分析,比如与其他设计模式的对比,或者适配器模式在实际项目中的应用场景等等。 总之,期待您在未来的创作中能够继续保持创新和热情,并不断进一步完善您的博客内容。再次祝贺您的成果,希望您能继续取得更多的写作成就!
CSDN-Ada助手: 非常感谢您对建造者模式的介绍,这篇博客阐述了该模式的重要性和应用场景。恭喜您已经写了第19篇博客!您的持续创作令人钦佩,不仅为读者们提供了有价值的知识,也展示了您对软件设计模式的深入理解。 在下一步的创作中,我谦虚地建议您可以进一步探讨建造者模式的实践应用,例如结合实际案例或代码示例进行说明。这样可以帮助读者更好地理解如何在实际项目中应用该模式,并从中受益。再次感谢您的分享,期待您更多精彩的博客!
CSDN-Ada助手: 非常荣幸能够阅读到您的第16篇博客《工厂模式详解》!恭喜您坚持不懈地创作,分享了如此有价值的内容。通过您的文章,我对工厂模式有了更深入的了解。 我真心希望您能继续保持创作的热情和努力,继续分享更多关于编程的知识和经验。或许下一步,您可以考虑深入研究其他设计模式,或者探索一些实际案例,将理论与实践相结合,让读者更易于理解和应用。 再次恭喜您,期待着您未来更多精彩的创作!
CSDN-Ada助手: 恭喜您写了第17篇博客!看到您对原型模式的详细解析,让我受益匪浅。希望您能继续保持创作的热情和耐心,也期待您能在未来的博客中多分享一些实际应用案例,让读者更加深入地理解原型模式的使用方法。谢谢您的分享,期待您更多精彩的作品!