目录
一:访问流程
二:缓存服务器配置
三:上传图片直接上传到图片服务器
四:加快图片访问
一:访问流程
访问缓存服务器(上面安装nginx反向代理到图片服务器,对外提供服务)->图片服务器
二:缓存服务器配置
location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {
proxy_pass http://img.cn;
expires 6h;
break;
}
访问图片跳转到图片服务器http://img.cn
(注意:http://img.cn 必须是nginx服务器能够访问的地址)
可以设置匹配路径images:
location ^~ /images/ {
proxy_pass http://img.cn;
expires 6h;
break;
}
三:上传图片直接上传到图片服务器
图片上传有php代码程序,直接处理图片的上传和下载。
如果要获取不同尺寸的原图的缩略图,可以访问服务器动态生成图片的缩略图
图片url示例:http://img.cn/20120802/(200x300)324234234.jpg
规范:http://img.cn/20120802/(宽x高)324234234.jpg 固定宽高
规范:http://img.cn20120802/(宽x)324234234.jpg 宽固定 高不限制
规范:http://img.cn/20120802/(x高)324234234.jpg 高固定 宽不限制
图片服务器上有动态php程序生成缩略图
如 handler.php?img=/20120802/324234234.jpg
用url 重写 把图片访问, 绑定到 动态文件上面 生成图片的缩略图
四:加快图片访问
(一)设置压缩
开启gzip和设置压缩类型
测试下:curl -I -H "Accept-Encoding:gzip,deflate" "http://img.cn/images/201604/index_img/8529_G_1460346831951.jpg"
(二)图片设置缓存
http层级:
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k; #这个要比proxy_buffers小
proxy_temp_file_write_size 256k;
proxy_temp_path /tmp/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
server层级:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 15d;
}
location ~ .*\.(js|css)?$
{
expires 1d;
}