阿里云Nginx整合Tomcat实现静态文件缓存
前几篇有讲到 Nginx相对于Tomcat处理静态文件的效率差距是很大的,这与Nginx的内部实现机制有很大关系。详见:Nginx处理静态数据的性能为什么如此吊
新建:proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k;#缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 600;#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache:50m inactive=20m max_size=30g;
proxy_cache_valid200 304 301 302 8h;
proxy_cache_valid404 1m;
proxy_cache_validany 2d;
proxy_cache_key $host$uri$is_args$args;nginx.conf 配置文件http模块中加入 :
include proxy.conf;
server模块 中加入一下配置 对静态文件进行缓存:
location ~ .*.(css|png|gif|jpg)$
{
proxy_pass http://localhost:8080;
proxy_cache cache;
add_header Nginx-Cache $upstream_cache_status;#统计缓存命中
proxy_set_header Accept-Encoding 'gzip';#强制浏览器
expires 30d;
}重启Nginx切换到sbin目录 ./nginx -s reload 平滑重启。
F12 谷歌浏览器静态文件css被缓存命中。英语自行补脑~~~
但是这时候又有童鞋会问了,如果我修改了某个静态网页,但是服务器还是会读取原来缓存的数据,总不能等到缓存时间到期吧?
当然方法是有的、有些人可能会想、直接删除缓存目录就是了,但是当你打开缓存目录你会觉得这是一个悲剧,你都不知道删哪一个,缓存文件根本就不是根据你的静态文件名字生成的。
好~方法总是有的,比如安装ngx_cache_purge模块。
好~教程总是有的,比如灯油时间加上~~~
admin 这些个技术帖子都是你发布的吗?你的技术水平好高啊
页:
[1]