1.什么是动静分离

将动态请求和静态请求区分访问

2.为什么要做动静分离

tomcat本身处理静态效率不高,还会带来资源开销.所以使用动静分离,将静态由Nginx处理, 动态由PHP处理或Tomcat处理

3.如何实现动静分离

  • Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
  • 如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理
总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端

我搭建的Nginx是反向代理负载均衡模式,所以把静态文件都存放在Nginx代理服务器上:

首先在Nginx安装目录下创建一个存放静态文件的文件夹:

#创建静态文件存储目录
mkdir /opt/nginx/static

编辑nginx配置文件

#找到nginx的配置文件
cd /opt/nginx/conf

#编辑配置文件
vi nginx.conf

找到server标签,内部添加动静分离配置:

Nginx:Nginx动静分离_静态文件

在server标签内部添加如下配置信息:

#通过url判断如下后缀为静态文件,并转至静态文件路径获取文件
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
#某用户下的 静态文件路径
root /opt/nginx/static/;
#缓存有效期 30d = 30天,也可以去掉
expires 30d;
}

Nginx:Nginx动静分离_动静分离_02

重启Nginx

#切换到nginx目录下
cd /opt/nginx

#进入操作命令文件夹
cd /sbin

#重启
./nginx -s reload

 

完成!


作者:怒吼的萝卜