背景
使用vagrant做为虚拟开发环境,本地开发服务器使用线上的登陆服务器进行登陆认证,登陆服务器使用django-simple-sso实现单点登陆,登陆认证开始时,客户端(本地开发服务器)向登陆服务器发送request-token请求,登陆服务器会验证发送请求的时间和登陆服务器自己的时间做比较,相差超过5秒则为BadRequest, signature invalid。
问题
ubuntu的hwclock, sysclock不一致,hwclock时间与服务器保持一致。但是sysclock越走越慢,而且慢的加速度很大,经过多次查找没有找到原因与解决办法,不得想到使用crontab的方法,但是大概10秒钟时间就能让sysclock比hwclock慢5秒。此方法失败。
其他方法:hwclock --hwtosys
是否是virtualbox的原因,没找到设置系统时间的相关选项,想着也不是,只有一个hwclock的设置选项
最终解决
重启宿主机
其他收获
使用vagrant的provision功能,可以在vagrant初始化后执行shell脚本,初始化开发环境。这样就可以不用更新vagrant box到服务器了。毕竟项目开发过程中,经常会出现需要添加pip包,ubuntu安装包等情况,每次都重新生成ssh,key,上传box,有点麻烦。
网友评论