nginx的反向代理二

一 背景描述

1.1 项目背景描述:

准备两个tomcat(8080、8081)和一个war程序。通过nginx的反向代理技术,根据不同的访问路径(使用路径判断),跳转到不同的的端口的服务当中,代理3个项目:

  1. tomcat 8080 下的项目nginx-demo  访问index.html显示内容为8080内容

http://192.168.152.131:8090/nginx-demo/index.html 

代理的是:127.0.0.1:8080

  1. Tomcat8081 下的项目nginx-demo  访问index.html显示内容为8081内容

http://192.168.152.131:8090/nginx-test/index.html

代理的是:127.0.0.1:8081

  1. Springboot 9090端口,访问index.html页面,显示9090的提示信息。

http://192.168.152.131:8090/

代理的是: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的正则说明

  1. = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
  2. ~:用于表示 uri 包含正则表达式,并且区分大小写。
  3. ~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值