简介
什么是动静分离?
通过中间件将动态请求和静态请求进行分离。分离资源,减少不必要的请求消耗,减少请求延时。
动静分离的好处
动静分离以后,即使动态服务不可用,静态资源仍不受影响。
动静分离示意图
动静分离应用
主机规划
主机名称 | 主机地址 | 主机用途 | 备注 |
---|---|---|---|
k8s-master-1 | 192.168.108.129 | 负载均衡主机 | Nginx Proxy |
k8s-master-2 | 192.168.108.130 | 静态资源主机 | Nginx Static |
k8s-master-3 | 192.168.108.131 | 动态资源主机 | Tomcat Server |
应用
Nginx配置
静态资源主机
- 信息
主机:192.168.108.130
路径:/etc/nginx/conf.d/static.conf
- 配置
server {
listen 8080;
server_name location;
root /www/static/app;
index index.html index.htm;
location ~* .*\.(png|jpg|gif)$ {
root /www/static/app/images;
}
}
- 资源
#静态资源准
mkdir -p /www/static/app/images
cd /www/static/app/images
#上传静态图片
#访问页面准备
cat > /www/static/app/index.html << EOF
<img src="./ai-1.jpg" alt="Image-1">
<img src="./ai-2.jpg" alt="Image-2">
<img src="./ai-3.jpg" alt="Image-3">
EOF
nginx -t
systemctl restart nginx
- 查看静态资源
curl -iv 127.0.0.1:8080
动态资源主机
- 安装Tomcat
yum -y install tomcat
- 信息
主机:192.168.108.131
路径:/usr/share/tomcat/webapps/ROOT/java_test.jsp
- 资源
mkdir -p /usr/share/tomcat/webapps/ROOT
cat > /usr/share/tomcat/webapps/ROOT/java_test.jsp << EOF
<%@ 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>
EOF
- 查看动态资源
curl -iv http://192.168.108.131:8080/java_test.jsp
负载均衡主机
- 信息
主机:192.168.108.129
路径:/etc/nginx/conf.d/wangmingqu.conf
- 配置
upstream static {
server 192.168.108.130:80;
}
upstream java {
server 192.168.108.131:8080;
}
server {
listen 80;
server_name wang.mingqu.com;
charset utf-8;
location ~ .*\.(png|jpg|gif)$ {
proxy_pass http://static;
}
location ~ .*\.jsp$ {
proxy_pass http://java;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- 验证动静分离
#访问动态页面
curl -iv http://wang.mingqu.com/java_test.jsp
#访问静态页面
curl -iv http://wang.mingqu.com/ai-1.jpg
动态页面
静态页面