Nginx结合tomcat反向代理和多个项目的路径转发 - Go语言中文社区

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


反向代理

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

负载均衡

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

动静分离

在这里插入图片描述

案例

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的监听地址,刷新,得到不同的资源结果。
在这里插入图片描述

在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/axiang_/article/details/108926446
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢