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 上面或下面都可:

nginx

  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記錄。
相關文章
相關標籤/搜索