NGINX静态文件 CDN部署 真实文件CDN集群

NGINX静态文件 CDN部署 真实文件CDN集群

已在生产环境部署 运行稳定

主要涉及文件实时同步 增/删/改

约定
1. CentOS 32/64位 系统
2. Nginx最新发行版
3. 域名多IP解析 使用DNSPOD区域分发

Part1 主服务器安装配置

Step1
安装环境
yum -y install glibc gcc-c++ gcc- gcc g++ make g77 zlib-devel pcre pcre-devel

Setp2
安装Nginx
cd /opt
wget http://nginx.org/download/nginx-1.2.1.tar.gz
tar xvfz nginx*.tar.gz
cd nginx*
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module
make
make install

配好虚拟主机环境 如果是多域名的话
如果是单网站 直接用根目录即可
仅需修改Nginx的运行参数

Step3
FTP软件配置
cd /opt
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.gz
tar xvfz proftpd-1.3.4a.tar.gz
cd proftpd*
./configure --prefix=/usr/local/proftpd
make
make install

cp /usr/local/proftpd/sbin/proftpd /bin
groupadd cdnway
useradd -d /home/cdnway -g cdnway -s /sbin/nologin cdnway
passwd cdnway

这个就是FTP的账户 cdnway 密码自定义即可

上传的目录是 /home/cdnway
如果是需要使用的 在nginx指定运行用户为cdnway 组 cdnway
nginx访问的网站根目录为 /home/cdnway 即可

Step4
安装配置同步软件
这里使用的servsync
下载 32位或者64位的
wget -c http://sersync.googlecode.com/files/sersync2.5_32bit_binary_stable_final.tar.gz
wget -c http://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz
配置好目录
修改配置文件里的





为你从服务器的配置 IP是从服务器的IP 内网外网均可 name是Rsync定义的名称

Part2 配置从服务器
yum install rsync
一般默认已经安装 不需要重新安装
编辑/etc/rsync.conf
内容为


uid=nobody
gid=nobody
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock

[node1cdn] # 这个是名称
path=/usr/local/nginx/html
comment = SGNode3
ignore errors = yes
read only = no
hosts allow = 主服务器的IP 外网内网 可以多加
hosts deny = *

然后启动
rsync –daemon –config /etc/rsyncd.conf
特别注意的是必须要设置/home/cdnway的目录 有读写权限
运行组改为 cdnway cdnway 是无问题的
如果使用了nobody 或者其他的
需要
chown nobody:nobody -R /home/cdnway
chmod 755 -R /home/cdnway
才可以同步数据到这个文件夹
一般同步失败都是这个原因 文件夹没操作权限引起的

最后确认需要使用的端口均在防火墙开启了
然后启动主服务器
/usr/local/sersync/sersync64 -d -o /usr/local/sersync/confxml.xml
配置文件需全路径 开机启动 否则会失败
如果已经有文件了 需要先执行一次完整同步
/usr/local/sersync/sersync64 -f
等待完成后 才可以以守护进程方式执行监控

最后 在主服务器
cd /home/cdnway
touch 1
在你所有的从服务器上应该都有这个1的文件

那么恭喜你 你已经完成了
每次增加从服务器节点 都需要 执行-f 进行完整同步

开机启动那些很简单 就不多讲了
如果有部署方面的问题可以咨询下我们

原创教程 如果转载请保留链接

Thanks

相关:

  • cdn 静态文件及时更新
  • nginx 静态化 集群
  • nginx的CDN
  • www yun cun cn
  • 部署文件 cdn

单客户的静态文件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
Scroll to top