跳到主要内容

[toc]

nginx动静分离

1.动静分离简介

动静分离,通过中间件将动态请求和静态请求进行分离, 分离资源, 减少不必要的请求消耗, 减少请求延时。

好处

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

实验环境

角色服务IP地址主机名
负载均衡Nginx Proxy10.0.0.10lb01
静态资源Nginx Static10.0.0.51web01
动态资源Tomcat Server10.0.0.52tomcat

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.访问测试

访问静态资源

iShot2020-06-2310.06.48

访问动态资源

iShot2020-06-2310.07.33