nginx 反向代理缓存实现CDN

小岑手上有几个VPS,想着给博客做个镜像站点的,想想比较麻烦,就自己配置闲置VPS的nginx的反向代理,然后再通过DNSPOD做负载均衡。 配置配置如下(注:该配置仅对http生效,https的配置还请再问度娘。)

1. 新建2个目录,放置缓存文件:

  mkdir /home/cache/path -p
  mkdir /home/cache/temp -p
  2. 修改 /usr/local/nginx/conf/nginx.conf 新增以下代码,主要是缓存相关设置,请放置于 http{ ##这里 } 中,加在 log_format 上面或下面均可:

  client_body_buffer_size 512k;
  proxy_connect_timeout 5;
  proxy_read_timeout 60;
  proxy_send_timeout 5;
  proxy_buffer_size 16k;
  proxy_buffers 4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  proxy_temp_path /home/cache/temp;
  proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:200m inactive=7d max_size=50g;
  #200m是内存占用,7d是7天无访问删除,5g是缓存占具硬盘空间,预估一下空间,NGINX会缓存一切页面
  3. 修改虚拟主机配置文件,可另存成xxx .conf 放置于 vhost 下面
  
server
  {
  listen 80;

server_name www.crazycen.com; #主机名

  location / {
  proxy_cache cache_one;
  proxy_cache_valid 200 304 3d; #正常状态缓存时间3天
  proxy_cache_key $host$uri$is_args$args;
  proxy_pass http://www.crazycen ; #这里填写你要代理的网站,由于只是加速,就和主机名一致
  proxy_redirect off;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  expires 10d; #默认10天缓存
access_log /home/wwwlogs/vpsmm.log access; #日志文件
  }
  4. 测试配置
/usr/local/nginx/sbin/nginx -t若提示:“the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  configuration file /usr/local/nginx/conf/nginx.conf test is successful”表示正常,若有错误请根据错误提示排除问题。

5. 缓存测试,可以修改本地host文件,指向代理服务器ip,测试网站缓存是否正常,点击几下网站,df -sh 命令,查看 /home/cache 目录大小,即可测试是否缓存成功。此脚本为前端全缓存,后端动态更新后,前端不会自动修改。可手动清理cache目录下文件。
6. 测试成功后,可去DNSPOD添加当前代理的A记录。


猜你喜欢

转载自blog.51cto.com/15015155/2554672