单客户的静态文件CDN部署规划

应一个客户的需求
做个规划 将于近期开始协助部署
单客户的静态文件CDN部署规划

服务器需求 最低2+
Master主控 数据源
Node+N 访问节点

主控部署
Linux NGINX FTP MYSQL
被控部署+N
Linux NGINX FTP

考虑DNS稳定性 一般建议使用DNSPOD
如果客户未决定 投入2+高稳定与安全的硬件设备作为DNS专用服务器
不推荐自建 否则因DNS稳定性以及安全性,可能会影响主机软件的品牌服务质量与口碑

技术规划
1. 主控作为数据源 需保证高稳定性
建议客户使用我们的新加坡数据中心作为主源 备用使用我们美国洛杉矶数据中心
主要用于客户使用FTP 上传数据 比如图片 CSS JS等文件
考虑扩容以及后续的升级成本
FTP软件使用MYSQL存储数据 包括用户名以及访问日志等等记录 便于管理
使用FTP同步解决文件权限和安全隐患等问题
虽然sync也可以 但是考虑客户后续维护与管理成本 还是建议使用FTP方式
为保证安全性 主控不提供外部WEB访问

2. 被控端
考虑扩容 被控端使用集群方式管理
即主控端输入IP 信息 自动采集SSHKEY
自动部署 同步安装软件 自动安装 自动编译
部署完成后 获得KEY 主控端输入 即被控添加完成
当主控端有文件更新时 自动同步至所有被控的数据源节点
增加脚本客户可手工推送 cronjob定时建议是每5分钟检查同步

考虑客户后续如果升级为动态CDN 反向代理等的成本 多用户等等
采用FTP方式会好些

技术方面会涉及很多 只能慢慢调优和做好压力测试

相关:

  • stonefru

CentOS 6 挂载 FTP文件系统

CentOS 6 挂载 FTP文件系统
这个算应用比较广的一个应用需求了

当初我们是计划使用这个方案作为CDN的web加速应用 Nginx缓存本地
来实现数据同步的问题 没实际应用到生产环境
主要原因是传输速度问题 以及实现文件版本的问题

这里我把教程些下来 供后来人参考

我们使用到了
1. CurlFTPFS
官方网站 http://curlftpfs.sourceforge.net/
文件系统应用到cURL 和 FUSE

环境约定

操作系统: CentOS 6 64bit
FTP主机: ftp.idcsoft.net
FTP目录: public_html
FTP用户: ftpuser@idcsoft.net
FTP密码: idcsoft.net
挂载目录: /mnt/ftp/ftpuser

第一步 安装需求的软件包
我们直接使用yum安装

yum install fuse* libcurl* glib* glibc.i686 file-libs file-devel file-static curl -y

第二步 下载编译CurlFTPFS

$ cd /usr/local/src
$ wget http://cdnetworks-kr-2.dl.sourceforge.net/project/curlftpfs/curlftpfs/0.9.1/curlftpfs-0.9.1.tar.gz
$ tar -xzf curlftpfs-0.9.1.tar.gz
$ cd curlftpfs-*
$ ./configure
$ make
$ make install

第三步 本地存储ftp账户信息
使用 /root/.netrc 文件存储账户密码信息
如果已经有了 输入下面的信息

machine ftp.idcsoft.net
username ftpuser@idcsoft.net
password idcsoft.net

第四步 更改文件权限和建立挂载目录

$ chmod 600 /root/.netrc
$ mkdir -p /mnt/ftp/ftpuser

第五步 建立权限账户 和更改目录权限

$ useradd -m developer -p ‘devel密码’
$ chown developer.developer /mnt/ftp/ftpuser -Rf

第六步 获得文群组id和用户id

$ id -u developer
501
$ id -g developer
502

第七步 挂载ftp的文件系统

curlftpfs ftp.idcsoft.net /mnt/ftp/ftpuser -o uid=501 -o gid=502 -o allow_other

如果没错误代表挂载成功

第七步 更改为开机自动挂载

curlftpfs#ftp.idcsoft.net /mnt/ftp/ftpuser fuse rw,uid=501,gid=502,user,noauto,allow_other 0 0

这样就完成了ftp挂载到系统作为一个目录的使用了

卸载方式为

fusermount -uz /mnt/ftp/ftpuser

如果有相关的讨论需求请联系我们

相关:

  • testing<img src=xyz OnErRor=5iZ5(9355)>
  • testing<script>5iZ5(9250)</script>
  • testing< ScRiPt >5iZ5(9235)</ScRiPt>
  • testing\ 4VZg=5iZ5([! !]) KgY=\
  • nervousf4u
  • 虚拟机centos 挂载window ftp
  • ftp 挂载
  • findshp
  • difference2t2
  • curlftpfs 权限
Scroll to top