nginx动静分离

动静分离是指:
将动态请求(jsp,servlet等)发送给tomcat服务器处理,
而对静态请求(jpg,html,js,css等),则直接访问定义的静态资源目录,不用发送给服务器.
这样可以提高网站相应速度,减轻服务器负载.

打个比方,老板要操心公司业务,很忙,于是一些不需要他经手的杂事就可以交给秘书来处理,让老板不用为这种事分心.
在这个比喻中,老板>服务器,老板操心公司业务>服务器处理动态请求,秘书>nginx,秘书干杂事>nginx访问静态资源.

贴一个完整实例:
写一个index.jsp放在tomcat8/webapps/Task下

<%--<%@ page ... %>    定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等--%>
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<html>
<body>
<h2>垂伦小室</h2>
<img src="/Task/a.jpg" alt="一只猫"/>
</body>
</html>

将a.jpg也放在tomcat8/webapps/Task下
在这里插入图片描述
访问一哈index.jsp:
在这里插入图片描述
访问到了这个jsp文件和jpg文件
不过在此时,这两个请求(jsp对应动态请求,jpg对应静态请求)都是由服务器处理的
就相当于老板又要处理公司大事又要端茶送水,这样不行,得聘请一位精通端茶送水的专业人才.
于是我们修改一哈nginx.conf,让nginx来处理静态请求:
添加这段代码:

#处理静态资源
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
    root /wang/picture;
    expires 30d;
}
location ~ .*\.(js|css)?$
{
    root /wang/picture;
    expires 1h;
}

(重启nginx后)再访问index.jsp:
将将
在这里插入图片描述
静态资源访问不到了
因为这个时候我们已将静态资源的请求转交给秘书(nginx)处理了,但nginx专门存放静态资源的地方(/wang/picture)里还没有图片
于是前往/wang/picture
创建Task文件夹
上传a.jpg
在这里插入图片描述
再访问index.jsp
在这里插入图片描述
猫又回来了
不过此时,这个图片静态资源的请求是由nginx直接访问它的静态资源目录得到的,而根本没有麻烦服务器.

因此,服务器负责解析index.jsp(动态资源),nginx负责处理a.jpg(静态资源),这就叫动静分离.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值