[toc]
nginx动静分离
1.动静分离简介
动静分离,通过中间件将动态请求和静态请求进行分离, 分离资源, 减少不必要的请求消耗, 减少请求延时。
好处
- 动静分离后, 即使动态服务不可用, 但静态资源不会受到影响
实验环境
角色 | 服务 | IP地址 | 主机名 |
---|---|---|---|
负载均衡 | Nginx Proxy | 10.0.0.10 | lb01 |
静态资源 | Nginx Static | 10.0.0.51 | web01 |
动态资源 | Tomcat Server | 10.0.0.52 | tomcat |
2.配置过程
2.1 负载均衡配置
编辑nginx配置文件
upstream static {
server 10.0.0.51:80;
}
upstream tomcat {
server 10.0.0.52:8080;
}
server {
listen 80;
server_name _;
location / {
root /website;
index index.html;
}
location ~* .*\.(png|jpg|gif)$ {
proxy_pass http://static;
}
location ~* .*\.jsp$ {
proxy_pass http://tomcat;
}
}
2.2 web01配置静态资源
编辑nginx配置文件
server {
listen 80;
server_name _;
location ~* .*\.(png|jpg|gif)$ {
root /website/images;
}
}
创建网站根目录
#创建网站根目录
mkdir -p /website/images && cd /website/images
#下载一个图片
wget -O /website/images/nginx.png https://nginx.org/nginx.png
2.3 tomcat配置动态资源
编辑jsp测试文件
⚠️这里已经二进制安装tomcat8.5
cat > /usr/local/tomcat-8.5.56/webapps/ROOT/tomcat_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
3.访问测试
访问静态资源
访问动态资源