负载均衡-动静分离实验

文章目录

访问流程

实验环境

系统 服务 服务 内网地址
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",

相关推荐
鹏大师运维20 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰20 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_6042366721 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春1 天前
【Linux复习】管理SELinux安全性
linux·运维·服务器
AI智图坊1 天前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
云计算磊哥@1 天前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步20151 天前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
极客先躯1 天前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java面试题总结1 天前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
志栋智能1 天前
超自动化巡检:提升MTTR,缩短业务影响时间
运维·自动化