7.nginx实现后端tomcat的负载均衡调度

7.nginx实现后端tomcat的负载均衡调度

 

1. 实验架构

 

 

 

2. 负载均衡主机和网络地址规划

 

10.0.0.8 proxy.magedu.org 调度器 Nginx

 

10.0.0.18 t1.magedu.org tomcat1 JDK8Tomcat9

 

10.0.0.28 t2.magedu.org tomcat2 JDK8Tomcat9

 

 

 

3.配置DNS实现域名解析

 

[root@centos7 ~]# service named restart

 

Redirecting to /bin/systemctl restart named.service

 

[root@centos7 ~]# hostname -I

 

10.0.0.7

 

 

 

[root@centos7 ~]# nslookup t1.magedu.org

 

Server: ::1

 

Address: ::1#53

 

 

 

Name: t1.magedu.org

 

Address: 10.0.0.18

 

 

 

[root@centos7 ~]# nslookup t2.magedu.org

 

Server: ::1

 

Address: ::1#53

 

 

 

Name: t2.magedu.org

 

Address: 10.0.0.28

 

 

 

[root@centos7 ~]# nslookup proxy.magedu.org

 

Server: ::1

 

Address: ::1#53

 

 

 

Name: proxy.magedu.org

 

Address: 10.0.0.8

 

 

 

 

 

 

 

4.tomcat主机配置

 

修改tomcat的虚拟机主机为自定义的主机名,并设为默认的虚拟主机

 

 

 

4.1.安装jdk+tomcat

 

 

 

4.2.修改主机名并生成jsp页面文件

 

 

 

Tomcat1:

 

[root@CentOS8 ~]# hostnamectl set-hostname t1.magedu.org;exit

 

[root@t1 ~]# hostname

 

t1.magedu.org

 

 

 

生成项目目录

 

[root@t1:~]# mkdir /data/webapps/ROOT -pv

 

 

 

生成index.jsp页面

 

[root@t1 data]# vim /data/webapps/ROOT/index.jsp

 

<%@ page import="java.util.*" %>

 

<!DOCTYPE html>

 

<html lang="en">

 

<head>

 

    <meta charset="UTF-8">

 

    <title>t1.magedu.org</title>

 

</head>

 

<body>

 

<div>On <%=request.getServerName() %></div>

 

<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>

 

<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>

 

<%=new Date()%>

 

</body>

 

</html>

 

 

 

 

 

修改默认主机为t1.magedu.org,并添加对应的虚拟主机,在</Host>之下添加,

 

[root@t1 data]# vim /usr/local/tomcat/conf/server.xml  

 

.....

 

<Engine name="Catalina" defaultHost="t1.magedu.org">

 

....

 

</Host>

 

<Host name="t1.magedu.org"  appBase="/data/webapps/"

 

      unpackWARs="true" autoDeploy="true">

 

  </Host>

 

.....

 

 

 

 

 

[root@t1 data]# chown -R tomcat.tomcat /data/webapps/

 

 

 

[root@t1 data]# systemctl restart tomcat

 

 

 

 

 

 

 

Tomcat2:

 

[root@CentOS8 ~]# hostnamectl set-hostname t2.magedu.org;exit

 

[root@t2 ~]# hostname

 

t2.magedu.org

 

 

 

[root@t2 ~]# mkdir /data/webapps/ROOT -pv

 

 

 

[root@t2 ~]# vim /data/webapps/ROOT/index.jsp

 

<%@ page import="java.util.*" %>

 

<!DOCTYPE html>

 

<html lang="en">

 

<head>

 

   <meta charset="UTF-8">

 

   <title>t2.magedu.org</title>

 

</head>

 

<body>

 

<div>On <%=request.getServerName() %></div>

 

<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>

 

<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>

 

<%=new Date()%>

 

</body>

 

</html>

 

 

 

 

 

修改默认主机为t2.magedu.org,并添加对应的虚拟主机,在</Host>之下添加,

 

[root@t2 ~]# vim /usr/local/tomcat/conf/server.xml

 

.....

 

<Engine name="Catalina" defaultHost="t2.magedu.org">

 

....

 

</Host>

 

<Host name="t2.magedu.org"  appBase="/data/webapps/"

 

      unpackWARs="true" autoDeploy="true">

 

  </Host>

 

.....

 

 

 

[root@t2 ~]# chown -R tomcat.tomcat /data/webapps/

 

 

 

[root@t2 ~]# systemctl restart tomcat

 

 

 

 

 

 

 

5. nginx主机实现代理

 

1.修改nginx配置文件,添加负载均衡,指定location路径

 

[root@centos7 ~]# vim /etc/nginx/nginx.conf

 

...........

 

       upstream tomcat-server {

 

            server t1.magedu.org:8080;

 

            server t2.magedu.org:8080;

 

}

 

 

 

    server {

 

        location ~* \.(jsp|do)$ {

 

            proxy_pass http://tomcat-server;

 

            }

 

    }

 

............

 

 

 

[root@centos7 ~]# nginx -s reload

 

 

5. client进行测试测试

 

 http://proxy.magedu.com/index.jsp,可以看到轮询调度效果,每次刷新后端主机和SessionID都会变化.

 

 

 

 

 

 

 

 

posted @   惊起千层浪  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示