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标签,内部添加动静分离配置:
在server标签内部添加如下配置信息:
#通过url判断如下后缀为静态文件,并转至静态文件路径获取文件
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
#某用户下的 静态文件路径
root /opt/nginx/static/;
#缓存有效期 30d = 30天,也可以去掉
expires 30d;
}
重启Nginx
#切换到nginx目录下
cd /opt/nginx
#进入操作命令文件夹
cd /sbin
#重启
./nginx -s reload
完成!
作者:怒吼的萝卜