文章目录
1.概念
动静分离,通过中间件将动态请求和静态请求进行分离;可以减少不必要的请求消耗,同时能减少请求的延时。
通过中间件将动态请求和静态请求分离,逻辑图如下:
2.web01配置动静分离
#配置
[root@web01 /code]# vim /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;
}
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
3.web03配置动态资源
#部署tomcat
[root@web03 ~]# yum install -y tomcat
[root@web03 ~]# mkdir /usr/share/tomcat/webapps/ROOT
[root@web03 ~]# vim /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.lb01配置负载均衡
[root@lb01 ~]# vim /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.检查配置文件并重启
[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
6.配置hosts访问
10.0.0.4 linux.djfenli.com
7.多台机器做动静分离
[root@lb01 ~]# vim /etc/nginx/conf.d/linux.djfenli.com.conf
upstream jt {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
upstream dt {
server 172.16.1.9:8080;
}
server {
listen 80;
server_name linux.djfenli.com;
location ~* \.(gif|png|jpg)$ {
proxy_pass http://jt;
include proxy_params;
}
location ~* \.jsp$ {
proxy_pass http://dt;
include proxy_params;
}
}
8.合并动静数据页面
1)配置负载均衡nginx
[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;
root /code/dj;
index index.html;
location ~* \.gif$ {
proxy_pass http://jt;
include proxy_params;
}
location ~* \.jsp$ {
proxy_pass http://dt;
include proxy_params;
}
}
2)配置站点目录
[root@lb01 ~]# mkdir /code/dj
[root@lb01 ~]# cat /code/dj/index.html
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>测试ajax和跨域访问</title>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
url: "http://linux.djfenli.com/java_test.jsp",
success: function(data){
$("#get_data").html(data)
},
error: function() {
alert("哎呦喂,失败了,回去检查你服务去~");
}
});
});
</script>
<body>
<h1>测试动静分离</h1>
<img src="http://linux.djfenli.com/1.gif">
<div id="get_data"></div>
</body>
</html>
3)重启访问
[root@lb01 ~]# systemctl restart nginx
#关闭静态资源或者动态资源,互不影响