所谓的动静分离就是通过中间件将静态请求和动态请求进行分离,目的是为了分离资源,对于服务端减少不必要的请求消耗,对于客户端减少响应的延时。
下面将使用Tomcat服务处理动态的请求,使用jpg处理静态请求。而Nginx则作为中间件将这两个服务请求进行分离
1、安装Tomcat以及web界面管理包,使用阿里云yum源安装tomcat(阿里云的搭建yum的方法:https://blog.csdn.net/vincen123/article/details/81436167)
yum -y install tomcat tomcat-webapps tomcat-admin-webapps
systemctl start tomcat
#启动tomcat服务
2、在Tomcat的目录下创建一个动态的jsp文件,名为java_test.jsp
vim /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、启动Nginx服务
systemctl start nginx
4、修改Nginx配置文件
vim /etc/nginx/conf.d/test.conf
upstream java_api{
server 127.0.0.1:8080;
}
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location ~ \.jsp$ {
proxy_pass http://java_api;
index index.html index.htm;
}
location ~ \.(jpg|png|gif)$ {
expires 1h;
gzip on;
}
location / {
root /opt/server;
index index.html index.htm;
}
5、上传一张图片到虚拟机里,这里将图片放置在/opt/server/code,图片名为nginx.jpg
pwd #查看当前路径
/opt/server/code
上传一张静态图片,jpg或者png结尾的
ls #查看当前目录下的文件
nginx.jpg
6、到相应路径下创建HTML文件
vim /opt/server/test.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://172.25.0.1/java_test.jsp",
success: function(data) {
$("#get_data").html(data)
},
error: function() {
alert("fail!!!,请刷新再试!");
}
});
});
</script>
<body>
<h1>测试动静分离</h1>
<img src="http://172.25.0.1/code/nginx.jpg"/>
<div id="get_data"><div>
</body>
</html>
7、检查Nginx的配置语法以及重新载入Nginx的服务
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf
8、查看80端口(Nginx)和8080端口(Tomcat)的状态
netstat -luntp | grep 80
netstat -luntp | grep 8080
9、在浏览器访问“虚拟机IP/test.html” (不断刷新,图片是静态的,数字会一直变化,是动态的)
10、关闭Tomcat、重新访问这个路径
systemctl stop tomcat
Tomcat是处理动态服务的,但把Tomcat服务关闭后,静态服务仍然可以正常运行