直接 PHP 下载缓存本地还不过瘾,用国外服务器的话还可以直接反代,各平台提供替换加速域名等都是这么玩的。
运行环境为 LNMP1.8,首先自行新增一个Vhost,这边以 py.guihet.com 为例。
1、修改 nginx 默认配置
vim /usr/local/nginx/conf/nginx.conf 查找 #limit_conn_zone $binary_remote_addr zone=perip:10m; 并在前面加入以下内容:
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:20m inactive=30d max_size=600m; #20m是内存占用,30d是30天无访问删除,600m是缓存占具硬盘空间,cache为缓存区名字.
以上可以使用 winSCP 等工具本地修改后上传。
2、创建缓存目录,并赋予权限
mkdir /home/cache/path -p mkdir /home/cache/temp chmod 755 -R /home/cache
3、修改虚拟主机配置文件
vim /usr/local/nginx/conf/vhost/py.guihet.com.conf,在合适位置加入以下配置
location / { proxy_cache cache; proxy_cache_valid 200 304 7d; #200 304状态缓存7天,按实际情况修改 #其他状态缓存(如502 404)10秒 proxy_cache_valid any 10s; proxy_cache_key "$scheme$host$request_uri"; #缓存key规则,用于自动清除缓存。 proxy_pass https://secure.gravatar.com/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #向后端传递访客ip proxy_set_header Referer https://i.eqblog.com; #强制定义Referer,程序验证判断会用到 proxy_set_header Host $host; #定义主机头 #limit_conn one 20; #limit_rate 200k; #20为单ip连接数,200k为单ip连接速度,若要开启请去掉# }
简单点也可以用
location /avatar { proxy_pass https://secure.gravatar.com/avatar; #你需要反代的网站 }
反正也看不懂,多写一点写复杂点比较有逼格。
4、重启 Nginx 服务
lnmp nginx restart
示例:https://py.guihet.com/avatar/1686e6a090318f104ffe1c0526696a57?s=200
那国内VPS呢?