我在Amazon EC2实例上的Tomcat上部署了Java Web应用程序。它使用OpenID身份验证进行用户登录。它现在运行了8-9个月。但是,当ec2实例运行超过一个月时,用户将无法再登录。原因是OpenID验证包括比较从OpenID提供商发送响应的时间和不应超过60秒的本地时间。
但是,我的EC2实例系统时间错误。我将其配置为每次重新启动实例时同步系统时间,但是在原子时间超过原子时间的时间内。例如,我在15天前重新启动了服务器,今天它提前了27秒。
有没有人遇到过这个问题?有没有解决方案,除了偶尔重启服务器?
谢谢,
卓然
答案 0 :(得分:3)
虚拟机本质上会在一段时间内导致与主机的时间差异。它是虚拟机中最常见的问题之一。
有几种解决方案,我首先尝试的是 *使用NTP服务器* 来同步时间。在这种情况下它应该可以帮到你
http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf vmware的这份白皮书讨论了其他可能的解决方案,但如果您还没有NTP服务器,我将从NTP服务器开始。