为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离。这也是反向代理服务器的一个重要的作用。
从目前的实现角度来说大致有两种:一种是把静态文件放在单独的服务器上,这是目前主流的方法;
一种就是动态文件和动态文件混合在一起发布,通过Nginx配置分开。
通过location指定不同的后缀名实现不同的请求转发,通过expires参数设置,可以设置浏览器缓存过期时间,减少与服务器之间的请求和流量。
具体Expires定义:是给资源设定一个过期时间,也就是说无需去服务器端验证,直接通过浏览器自身确定是否过期即可,所以不会产生额外的流量。此方法非常适合不经常变动的资源(如果经常更新的文件,不建议使用Expires来缓存),我这里设置3d,表示在这3天之内访问这个URL,发送一个请求,比对服务器上该文件最后的更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则之间从服务器上下载,返回状态码200。
1、准备工作
(1)在linux系统上创建一个静态资源文件夹。
mkdir -r /data/image
mkdir -r /data/www
(2)在imgae文件夹中放入图片,在www文件夹中放入html文件。
2、具体配置
server {
listen 80;
server_name localhost;
location /www {
root /data;
index index.html;
}
location /image {
root /data;
autoindex on; #目录索引页
}
}
访问:http://ip地址/www/a.html
http://ip地址/image/1.jpg