最新消息:时间抓起来说是金子,抓不住就是流水。

NGINX反向代理并将图片保存于缓存服务器

LINUX技术 老子黑牵翻 7103浏览 0评论

        今天,一个朋友叫我帮忙在LINUX下搭建同步工具,开始我是想用rsync的,但是具体了解了情况以后,我决定用NGINX的反向代理。我朋友有个网站www.ileiming.com是放在国外的,他想让这个站的图片用国内的服务器(img.abc.com),如果单纯用NGINX的反向代理功能,用户每次访问这个站的时候,缓存服务器(这里就是img.abc.com所在的服务器)就会每次都去国外的站点上取出图片,这样反而会让图片打开的速度很慢,所以后来完善NGINX的反向代理,把访问过的图片都保存到缓存服务器上,这样第一次会比较慢,但以后用户访问图片的时候,都是从国内服务器上调用的,而不会再去国外服务器上了。在缓存服务器上具体NGINX的配置如下
server {
include /usr/local/nginx/conf/port.conf;
server_name  img.abc.com;

        root   /www/img.abc.com;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires       7d;
root /data/www/img.abc.com;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /www/img.abc.com;
proxy_redirect          off;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 1280k;
proxy_connect_timeout   900;
proxy_send_timeout      900;
proxy_read_timeout      900;
proxy_buffer_size       40k;
proxy_buffers           40 320k;
proxy_busy_buffers_size 640k;
proxy_temp_file_write_size 640k;
if (!-e $request_filename)
{
proxy_pass  http://img.ileiming.com; #后端服务器ip地址或域名
}
}

        error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}

    log_format  img.abc.comlog  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log  logs/img.abc.com.log  img.abc.comlog;
}

设置完了,保存img.abc.com.conf文件,并重启NGINX,这样,img.abc.com就会在用户第一次访问www.ileiming.com网站图片的时候自动去www.ileiming.com的服务器上去抓去图片并保存到缓存服务器上了

转载请注明:LINUX服务器运维架构技术分享 » NGINX反向代理并将图片保存于缓存服务器

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址