动静分离实践

1.什么是动静分离?
	将动态请求和静态请求区分访问, 

2.为什么要做动静分离?
	静态由Nginx处理, 动态由PHP处理或Tomcat处理....
	因为Tomcat程序本身是用来处理jsp代码的,但tomcat也能处理静态资源.
	tomcat本身处理静态效率不高,还会带来资源开销.
3.如何实现动静分离?

Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理。

总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端。


4.单机实现动静分离实战
	[root@web01 ~]# yum install java tomcat -y
	[root@web01 ~]# mkdir /usr/share/tomcat/webapps/ROOT		-->主要站点根目录
	[root@web01 ~]# vi /usr/share/tomcat/webapps/ROOT/index.jsp
	<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
	<html>
	  <head>
		<title>Nginx+Tomcat</title>
	  </head>
	  <body>
		  <%
			Random rand = new Random();
			out.println("<h2>动态资源</h2>");
			out.println(rand.nextInt(99)+100);
		%>
		<h2>静态图片</h2>
		<img src="nginx.png" />
	  </body>
	</html>
[root@web01 ~]# wget -O /usr/share/tomcat/webapps/ROOT/nginx.png http://nginx.org/nginx.png
[root@web01 ~]# systemctl start tomcat

   tomcat监听在8080端口上:
   

#配置Nginx 
[root@web01 conf.d]# cat ds.oldxu.com.conf 
server {
	listen 80;
	server_name ds.oldxu.com;

	location / {
		proxy_pass http://127.0.0.1:8080;
	}
	location ~* \.(png|gif|jpg|mp4)$ {
		root /images;
		expires 1d;
	}
}


5.集群实现动静分离实战
[root@lb01 conf.d]# cat  proxy_ds.oldxu.com.conf

upstream java {
	server 172.16.1.7:8080;
} 
upstream static {
	server 172.16.1.8:80;
}
server {
	listen 80;
	server_name ds.oldxu.com;
	location / {
		proxy_pass http://java;
		include proxy_params;
	}

	location ~* \.(png|gif|jpeg)$ {
		proxy_pass http://static;
		expires 2d;
		include proxy_params;
	}
}

posted @ 2019-11-08 21:49  老王教你学Linux  阅读(117)  评论(0编辑  收藏  举报