由于我们业务的发展,增加前端的web server的机器数,并且通过nginx进行了简单的负载均衡,但是,我们一些业务逻辑会依赖于机器的时间,所以,就需要同步这些web server机器的系统时间。幸亏freeBSD上提供了这样的时间同步服务,叫ntpd这样的服务。它的具体实现原理就是:有一台机器作为ntpd的服务器,这台时间服务器会定期与国外或者国内的标准时间服务器(这个可以在配置文件设定是那些服务器)校准时间,这样的话,自己系统中其他机器就以这台ntpd的服务器的时间为准,定期同步校准时间。进而就实现了机器间的时间一致性。
具体搭建步骤是:(如果没有安装ntpd的话,可以利用ports方式进行安装)
1、选定一台服务器作为自己系统的时间服务器,比如:192.168.1.100
2、在这台时间服务器中,调整时区,比如UTC,
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
adjkerntz -a
3、校准这台服务器的时间 ntpdate 202.112.10.60
4、创建配置文件ntp.conf,保存在/etc下面
5、 配置文件的内容如下:
server time.buptnet.edu.cn iburst maxpoll 9
server cn.pool.ntp.org iburst maxpoll 9
server hk.pool.ntp.org iburst maxpoll 9
server s2e.time.edu.cn iburst maxpoll 9
restrict 192.168.1.100 mask 255.255.255.0 nomodify notrap //安全配置,只有同一个网段才可以访问ntp服务器
driftfile /var/db/ntp.drift
具体什么含义,可以查找相关资料
6、启动ntpd, /etc/rc.d/ntpd start
7、查看NTP服务器状态 ntpq -p
上述过程是搭建时间服务器
下面需要设置其他服务器来保持与时间服务器进行同步校准时间
主要是在crontab中添加定时的任务就可以了
*/3 * * * * /usr/sbin/ntpdate 192.168.1.100
在需要同步时间的机器中添加上面的任务。