Nginx结合tomcat反向代理和多个项目的路径转发

其他 专栏收录该内容
7 篇文章 0 订阅

反向代理

暴露的代理服务器,隐藏的真实的服务器。客户端把请求发给反向代理服务器,反向代理服务器进行转发。
在这里插入图片描述

负载均衡

将请求分发到不同的服务器上。
在这里插入图片描述

动静分离

在这里插入图片描述

案例

nginx代理访问到tomcat
  1. 启动tomcat,地址为http://192.168.2.103:8080。
    在这里插入图片描述
  2. 修改redis的配置文件,将访问redis的路径转发到tomcat上。
server {
    listen       80;  # 对localhost:80监听,对地址进行代理转发
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        proxy_pass http://192.168.2.103:8080;  # 转发到tomcat的路径!
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}
  1. 访问redis的地址,得到tomcat的界面。

在这里插入图片描述

nginx根据不同的路径跳转到不同的tomcat下的文件夹
localhost/tomcat1/a.html 
localhost/tomcat2/a.html 
-----------------
根据/tomcat1或者/tomcat2分别转发到不同的tomcat下
  1. 配置两个tomcat,在各自的webapps下分别有tomcat1文件夹和tomcat2文件夹,里面存放了a.html显示各自的端口号,分别为8080端口和8081端口。

直接访问tomcat的路径查看,以下图。在192.168.2.103上。
8080tomcat下的a.html
在这里插入图片描述

  1. 配置redis根据请求的路径,tomcat1或者tomcat2,分别转发到不用的tomcat下。
server {
    listen       80; # 80端口监听
    server_name  localhost;

    location ~ /tomcat1/ { # 正则匹配,转发到8080的tomcat的tomcat1文件夹
        proxy_pass http://192.168.2.103:8080;
    }

    location ~ /tomcat2/ { # 正则匹配,转发到8081的tomcat的tomcat2文件夹
        proxy_pass http://192.168.2.103:8081;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

  1. 访问80端口,查看redis的转发是否生效。

在这里插入图片描述

在这里插入图片描述

负载均衡

有一个项目shop, 分别部署在两台tomcat下,里面有一个a.html文件,显示各自的端口号,分别为8080端口和8081端口。

用redis对其实现负载均衡的操作。
http块中

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

	# 配置服务器列表-两台tomcat
    # 默认轮训的方式,可以加权重
    # ip_hash 可以根据ip的hash分配,固定访问同一个后端服务器,用于解决session的问题
    upstream myserver {
    	#ip_hash
    	server 192.168.2.103:8080;
    	server 192.168.2.103:8081;
      # server 192.168.2.103:8080 weight 1;
      # server 192.168.2.103:8081 weight 2;
    }

    include /etc/nginx/conf.d/*.conf;
}


------

server {
    listen       80;
    server_name  localhost;

	# 反向代理到之前定义好的myserver服务器地址集合中去
    location / {
        proxy_pass http://myserver;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

访问redis的监听地址,刷新,得到不同的资源结果。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

f2xiang

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值