1 2 3 |
动静分离,通过中间件将动静分离和静态请求进行分离; 通过中间件将动态请求和静态请求分离,可以减少不必要的请求消耗,同时能减少请求的延时。 通过中间件将动态请求和静态请求分离,逻辑图如下: |

单台机器动静分离
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#配置 [root@web01 /code]# cat /etc/nginx/conf.d/linux.blog.com.conf server { listen 80; server_name linux.blog.com; root /code/wordpress; location / { index index.php; } location ~* \.(jpg|png)$ { root /code/pic; root /code/wordpress; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } #创建目录 [root@web01 /code]# mkdir /code/pic #做软连接 [root@web01 /code]# ln -s /code/wordpress/wp-content /code/pic |
多台机器做动静分离
1)环境准备
主机 | IP | 身份 |
---|---|---|
lb01 | 10.0.0.4,172.16.1.4 | 负载均衡 |
web01 | 172.16.1.7 | 静态资源 |
web03 | 172.16.1.9 | 动态资源 |
2)web01配置静态资源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@web01 /code]# vim /etc/nginx/conf.d/jt.conf server { listen 80; server_name linux.djfenli.com; location ~* \.(jpg|png|gif)$ { root /code/pic; } } #重启 [root@web01 /code]# systemctl restart nginx #上传一些图片 [root@web01 /code]# mkdir pic [root@web01 /code/pic]# ll total 1188 -rw-r--r-- 1 root root 407030 Sep 2 12:22 1.gif -rw-r--r-- 1 root root 298866 Sep 2 12:21 3_web01.jpg -rw-r--r-- 1 root root 410120 Sep 2 12:22 4_web02.jpg -rw-r--r-- 1 root root 60494 Sep 2 12:21 timg_(2).jpg -rw-r--r-- 1 root root 30607 Sep 2 12:21 timg_(3).jpg |
3)web03配置动态资源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#部署tomcat [root@web03 ~]# yum install -y tomcat [root@web03 ~]# mkdir /usr/share/tomcat/webapps/ROOT [root@web03 ~]# cat /usr/share/tomcat/webapps/ROOT/java_test.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <HTML> <HEAD> <TITLE>曾老湿JSP Page</TITLE> </HEAD> <BODY> <% Random rand = new Random(); out.println("<h1>曾老湿随机数:<h1>"); out.println(rand.nextInt(99)+100); %> </BODY> </HTML> [root@web03 ~]# systemctl start tomcat [root@web03 ~]# netstat -lntp tcp6 0 0 :::8009 :::* LISTEN 34369/java tcp6 0 0 :::8080 :::* LISTEN 34369/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 34369/java |
4)配置负载均衡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@lb01 ~]# cat /etc/nginx/conf.d/linux.djfenli.com.conf upstream jt { server 172.16.1.7:80; } upstream dt { server 172.16.1.9:8080; } server { listen 80; server_name linux.djfenli.com; location ~* \.gif$ { proxy_pass http://jt; include proxy_params; } location ~* \.jsp$ { proxy_pass http://dt; include proxy_params; } } |
5)检查配置文件并重启
1 2 3 4 |
[root@lb01 ~]# 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 ~]# systemctl restart nginx |