nginx的反向代理二
Posted 健康平安的活着
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx的反向代理二相关的知识,希望对你有一定的参考价值。
一 背景描述
1.1 项目背景描述:
准备两个tomcat(8080、8081)和一个war程序。通过nginx的反向代理技术,根据不同的访问路径(使用路径判断),跳转到不同的的端口的服务当中,代理3个项目:
- tomcat 8080 下的项目nginx-demo 访问index.html显示内容为8080内容
http://192.168.152.131:8090/nginx-demo/index.html
代理的是:127.0.0.1:8080
- Tomcat8081 下的项目nginx-demo 访问index.html显示内容为8081内容
http://192.168.152.131:8090/nginx-test/index.html
代理的是:127.0.0.1:8081
- Springboot 9090端口,访问index.html页面,显示9090的提示信息。
代理的是:127.0.0.1:9090
Niginx监听的端口为8090
1.2 在linux系统下再部署一个8081的tomcat
1.在linux系统下,再部署一个tomcat,端口号为8081,配置操作步骤见:
https://blog.csdn.net/u011066470/article/details/109200118
2.查看8081端口的tomcat,启动此tomcat
在bigdata目录下新建一个tomcat-8081目录,然后将tomcat软件包复制到此目录下,经过配置后,进行启动。
[root@www bin]# pwd /root/bigdata/tomcat-8081/apache-tomcat-8.5.6/bin [root@www bin]# sh startup.sh ;tail -f ../logs/catalina.out |
3.在页面进行访问:http://192.168.152.131:8081/
1.3 在8081的tomcat下存放一个web项目
将8080服务器下的web项目nginx-test复制到8081的tomcat下,并修改项目中index.html的页面内容:
在页面进行访问:http://192.168.152.131:8081/nginx-test/index.html
1.4 启动访问一个springboot项目
注意需要先安装jdk。
#jar包上传位置
#启动jar包
Nohup Java -jar nginx-portal.war &
#访问web项目:http://192.168.152.131:9090/index.html
1.5 将在8080的tomcat也启动
#在tomcat下8080端口下放置的是:nginx-demo的项目
如果tomcat的8080下没有启动,在需要先启动再访问:http://192.168.152.131:8080/nginx-demo/index.html
1.6 在nginx上配置反向代理
server { listen 8090; server_name 192.168.152.131;
location ~ /nginx-demo/ { proxy_pass http://127.0.0.1:8080; root html; index index.html index.htm; } location ~ /nginx-test/ { proxy_pass http://127.0.0.1:8081; root html; index index.html index.htm; } location ~ / { proxy_pass http://127.0.0.1:9090; root html; index index.html index.htm; }
} |
1.7 访问代理
#访问1
根据上一步nginx的配置可知道:http://192.168.152.131:8090/ 为访问根目录,默认转发请求nginx-portal 这个spring boot项目。端口为9090。
其实访问的就是springboot下端口为9090的web项目
#访问2
访问地址:http://192.168.152.131:8090/nginx-demo/index.html 其实访问的就是8080端口下的web项目
#访问3
访问地址:http://192.168.152.131:8090/nginx-test/index.html 其实访问的就是8081端口下的web项目
总结:可是看到不同路径下,使用nginx实现了反向代理
1.8 location的正则说明
- = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示 uri 包含正则表达式,并且区分大小写。
- ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
以上是关于nginx的反向代理二的主要内容,如果未能解决你的问题,请参考以下文章