tomcat实现动静分离(AJAX)

动静分离简述

# nginx动静分离基本概述
动静分离,通过中间件将动静分离和静态请求进行分离;
通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同事能减少请求的延时。

# 动静分离好处
动静分离后,即使动态服务不可用,但静态资源不会受到影响。

# 部署tomcat作用
存放后端编写JAVA代码的动态页面,tomcat作为解析JAVA代码,交由nginx处理,比tomcat稍微高级点的同类软件还有resin

动静分离实验

要求

# 实验要求
后端使用java代码,使用tomcat作为中间件,使用负载服务器,实现动静分离,动态请求(访问JAVA代码)发送到tomacat服务器中,静态请求(访问图片资源信息)发送到另外一条服务器中。

# 说明
实现动静分离主要依靠lb中的index页面代码,当用户访问lb的网站时=访问/code/index.html,然后index.html中写入代码为AJAX,所以实现动静效果主要依靠index文件中AJAX内容

tomcat实现动静分离(AJAX)

环境准备

主机名 外网ip 内网ip 角色
lb01 10.0.0.5 172.16.1.5 负载服务器
web01 10.0.0.7 172.16.1.7 tomcat/动态页面
web02 10.0.0.8 172.16.1.8 nginx/静态页面

操作流程

web02静态页面安装配置

# 1.nginx安装
[root@web02 ~]# yum install -y nginx

# 2.编辑nginx配置文件
[root@web02 /]# vim /etc/nginx/conf.d/static.conf
server {
        listen 80;
        server_name static.com;
        root /code;
        index index.html;

        location ~* \.(jpg|gif|jpeg|png|mp4) {            # 访问结尾为jpg,gif,jpeg,png,mp4(不区分大小写)结尾全部访问/root/images下图片
                root /code/images;
                }

}

# 3.检测配置文件语法并且启动服务
[root@web02 /]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web02 /]# systemctl start nginx

# 4.根据配置文件创建对应目录
[root@web02 /]# mkdir /code/images -p

# 5.上传图片至/code/images目录下
[root@web02 images]# rz
[root@web02 images]# ll
total 20
-rw-r--r-- 1 root root 18869 May 22 07:26 88.jpg

web01动态页面安装配置

# 1.安装tomcat
[root@web01 ~]# yum install -y tomcat                        # 安装tomcat实现动态页面

# 2.进入tomcat的站点目录
[root@web01 ~]# cd /usr/share/tomcat/webapps/                

# 3.创建ROOT目录(注意要大写)
[root@web01 webapps]# mkdir ROOT                              # 此目录为tomcat动态页面,ROOT需要手动创建

# 4.进入ROOT目录书写JAVA文件
[root@web01 ROOT]# vim java.jsp                               # JAVA代码nginx不认识,需要安装tomcat来帮助nginx认识

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>TCY Page</TITLE>
    </HEAD>
    <BODY>
        <%
            Random rand = new Random();
            out.println("<h1>TCY:<h1>");
            out.println(rand.nextInt(99)+100);
        %>
     </BODY>
</HTML>

# 5.启动tomcat服务
[root@web01 ROOT]# systemctl start tomcat

# 6.检测端口是否开启                                               # tomcat启动端口为9000,但同时会启动好几个端口,只是检测用9000来检测
[root@web01 ROOT]# netstat -lntup|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      7172/java 

lb代理配置

# 1. 安装nginx
[root@lb01 ~]# yum install -y nginx

# 2. 修改nginx配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/java_static.conf

server {
        listen 80;
        server_name www.static.com;

        location / {
                root /code;
                index index.html;
        }

        location ~* \.(jpg|png|gif)$ {                              # 一旦用户访问以此结尾就走下面172.16.1.8里,并且带上头部去访问用户
                proxy_pass http://172.16.1.8;
                proxy_set_header Host $http_host;
        }

        location ~ \.jsp {                                          # 一旦用户访问.jsp结尾(动态页面)则找172.16.1.7:8080,也就是tomcat处理
                proxy_pass http://172.16.1.7:8080;
                proxy_set_header Host $http_host;
        }

}

# 3.配置AJAX页面,实现前后端分离
[root@lb01 ~]# mkdir /code
[root@lb01 code]# vim /code/index.html                              # 访问域名默认找此页面,主要里面的内容帮助实现前后端分离效果
<html lang="en">                                                    # 想要看懂就去看一下AJAX
<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.static.com/java.jsp",
        success: function(data){
                $("#get_data").html(data)
        },
        error: function() {
                alert("哎呦喂,失败了,回去检查你服务去~");
        }
        });
});
</script>
        <body>
                <h1>帅的一匹测试动静分离</h1>
                <img src="http://www.static.com/88.jpg">		
                <div id="get_data"></div>
        </body>
</html>

# 4.检测配置文件语法并且启动服务
[root@lb01 code]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 code]# systemctl start nginx

# 5.浏览器测试
· 浏览器直接访问lb负载均衡服务器即可,并且不需要输入uri
http://www.static.com/

tomcat实现动静分离(AJAX)

tomcat实现动静分离(AJAX)

上一篇:ajax hook注入


下一篇:如何更愉快地使用rem —— 别说你懂CSS相对单位