需求:
因为不想使用aws官方的cdn加速,想使用国内的cdn进行加速,最后得了这个方案。
把文件挂载到nginx服务器上,然后把cdn回源地址指向nginx ip地址,最后使用nginx访问web即可。
本人是使用root权限执行
安装aws s3fs
sudo yum install epel-release
sudo yum install s3fs-fuse
aws密钥
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs
挂载s3存储到/mnt/mybucket目录,并把文件设置为nginx权限,毕竟使用root运行nginx不够安全
$ id nginx
uid=997(nginx) gid=994(nginx) groups=994(nginx)
$ s3fs -o uid=997,gid=994 static-xxx-pro /mnt/mybucket -o passwd_file=${HOME}/.passwd-s3fs
设置fstab开机自动挂载s3
s3fs#static-xxx-pro /mnt/mybucket fuse _netdev,allow_other,uid=997,gid=994 0 0
查看/mnt/mybucket目录
[root@prod-xxx-nginx01 ~]# ll /mnt/mybucket/
total 1055010
-rw-r--r-- 1 nginx nginx 392149 Oct 17 17:37 11.jpg
-rw-r--r-- 1 nginx nginx 168178 Oct 18 15:10 15.jpg
-rw-r--r-- 1 nginx nginx 108817 Oct 18 15:10 16.jpg
-rw-r--r-- 1 nginx nginx 293153 Oct 18 15:10 1.png
-rw-r----- 1 nginx nginx 414534 Oct 18 15:52 20.jpg
-rw-r----- 1 nginx nginx 427617 Oct 18 15:52 21.jpg
-rw-r----- 1 nginx nginx 403020 Oct 18 15:52 22.jpg
-rw-r----- 1 nginx nginx 435375 Oct 18 15:52 23.jpg
-rw-r----- 1 nginx nginx 487228 Oct 18 15:52 24.jpg
-rw-r----- 1 nginx nginx 469577 Oct 18 15:52 25.jpg
-rw-r--r-- 1 nginx nginx 2837317 Oct 18 15:10 2.png
-rw-r--r-- 1 nginx nginx 29063 Oct 18 15:10 3.jpg
-rw-r--r-- 1 nginx nginx 76135 Oct 18 15:10 4.jpg
-rw-r--r-- 1 nginx nginx 42301 Oct 18 15:10 9.png
nginx配置如下:
server {
listen 80;
server_name static.xxx.pro;
location / {
alias /mnt/mybucket/;
}
}
参考:
s3fs-fuse