负载均衡-动静分离实验

文章目录

访问流程

实验环境

系统 服务 服务 内网地址
CentOS7.7 负载均衡 Nginx Proxy 10.0.0.5
CentOS7.7 静态资源 Nginx Static 10.0.0.7
CentOS7.7 动态资源 Tomcat Server 10.0.0.8

实验需求

动静分离,通过中间件将动态请求和静态请求进行分离, 分离资源, 减少不必要的请求消耗, 减少请求延时。

好处: 动静分离后, 即使动态服务不可用, 但静态资源不会受到影响,通过中间件将动态请求和静态请求分离

实验步骤

1、搭建web01的静态资源

php 复制代码
#安装nginx
[root@web01 ~]# yum -y localinstall nginx-1.20.2-1.el7.ngx.x86_64.rpm


#编辑配置文件
[root@web01 ~]# cat /etc/nginx/conf.d/www.conf 
server{
    listen 80;
    server_name www.jy.com;
}
    location / {
        root /code/www;
        index index.html;
        location ~* \.(png|jpg|gif)$ {
    root /code/www/images;
    }
}

#创建目录,上传图片
[root@web01 ~]# mkdir  /code/www/images
[root@web01 images]# ls
1.png


#启动服务
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

2、搭建web02的动态资源

php 复制代码
#安装tomcat
[root@web02 ~]# yum install -y tomcat
#启动tomcat
[root@web02 ~]# systemctl start tomcat

#编写默认页面
[root@web02 ~]# mkdir /usr/share/tomcat/webapps/ROOT
[root@web02 ~]# vi /usr/share/tomcat/webapps/ROOT/java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>JSP Test Page</TITLE>

    </HEAD>

    <BODY>
      <%
        Random rand = new Random();
        out.println("<h1>Random number:</h1>");
        out.println(rand.nextInt(99)+100);
      %>
    </BODY>

</HTML>

3、部署lb01

php 复制代码
#安装nginx
[root@lb01 ~]# yum -y localinstall nginx-1.20.2-1.el7.ngx.x86_64.rpm

#编写配置文件
vim /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;


#编写反向代理配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/proxy.conf
upstream static {
    server 10.0.0.7:80;
}
upstream java {
    server 10.0.0.8:8080;
}
server {
    listen 80;
    server_name www.jy.com;
    location / {
        root /web/www;
        index index.html;
    }
    location ~ .*\.(png|jpg|gif)$ {
        proxy_pass http://static;
        include proxy_params;
    }
    location  ~ .*\.jsp$ {
        proxy_pass http://java;
        include proxy_params;
    }
}


## 编写页面文件
[root@lb01 ~]# mkdir -p /web/www
[root@lb01 ~]# vi /web/www/index.html
<html lang="en">
<head>
        <meta charset="UTF-8" />
        <title>测试ajax和跨域访问</title>

        <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>

</head>

<script type="text/javascript">
$(document).ready(function(){
        $.ajax({
        type: "GET",
        url: "http://www.jy.com/java_test.jsp",   #域名可以修改自己的,后面是Tomcat创建的路径
        success: function(data) {
                $("#get_data").html(data)
        },
        error: function() {
                alert("fail!!,请刷新再试!");
        }
        });
});
</script>

        <body>
                <h1>测试动静分离</h1>

                <img src="http://www.jy.com/1.png">   #修改为存放静态图片的 文件名字
                <div id="get_data"></div>

        </body>

</html>

#重启nginx
[root@lb01 ~]# systemctl restart nginx

    
#修改hosts文件
172.16.1.5   www.jy.com

4、验证

动态网页

访问 "http://www.tf.com/java_test.jsp",

相关推荐
XXYBMOOO3 小时前
基于 HTML5 Canvas 的终端日志流可视化实现(支持多 Pane / 运维模式)
运维·前端·html5
源图客3 小时前
Nacos3.1.1部署(Docker)
运维·docker·容器
ChristXlx3 小时前
Linux安装Minio(虚拟机适用)
linux·运维·网络
NineData3 小时前
NineData 数据库 DevOps 正式支持谷歌云,全面接入 GCP 数据源
运维·数据库·devops·ninedata·gcp·玖章算术·数据智能管理平台
从零开始学习人工智能3 小时前
《8076 能通 9003 却超时?一次 Docker 容器跨网段排障小记》
运维·docker·容器
A13247053123 小时前
Linux文件查找:find和locate命令入门
linux·运维·服务器·网络·chrome
物联网软硬件开发-轨物科技3 小时前
【轨物新闻】轨物科技光伏清洁机器人智能控制和运维解决方案正式上线华为鲲鹏解决方案市场
运维·科技·机器人
一周困⁸天.3 小时前
DevOps
运维·devops
飞机火车巴雷特3 小时前
PyCharm通过跳板机连接隔离内网服务器
运维·服务器