目录
访问缓存服务器(上面安装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;
}