java - EC2实例上的原子时间和系统时间差

标签 java linux amazon-ec2

我在 Amazon EC2 实例上的 Tomcat 上部署了 Java Web 应用程序。它使用 OpenID 身份验证进行用户登录。它现在运行了 8-9 个月。但是,当 ec2 实例运行超过一个月后,用户将无法再登录。原因是 OpenID 验证包括从 OpenID 提供商发送响应的时间与本地时间的比较,本地时间不应超过 60 秒。

但是,我的 EC2 实例得到了错误的系统时间。我将它配置为在每次重新启动实例时同步系统时间,但随着时间的推移它会领先于原子时间。例如,我在 15 天前重新启动了服务器,而今天,它提前了 27 秒。

有人遇到过这个问题吗?除了偶尔重启服务器之外,还有什么解决办法吗?

谢谢,

卓然

最佳答案

虚拟机本质上会在一段时间内造成与主机的时间差。这是虚拟机中最常见的问题之一。

有几种解决方案,我首先尝试的是* 使用NTP 服务器* 来同步时间。在这种情况下它应该对你有帮助

http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf vmware 的这份白皮书讨论了其他可能的解决方案,但如果您还没有 NTP 服务器,我将从 NTP 服务器开始。

关于java - EC2实例上的原子时间和系统时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042379/

相关文章:

java - 在 GWT/GXT 中编译后更改 .properties 文件吗?

php - Yii2 控制台命令在 linux 上不起作用(基本应用程序)

php - Symfony 中的操作系统独立供应商路径

amazon-web-services - 使用 AWS::include 和嵌套堆栈编写可重用的 CloudFormation 片段

java - 在 Felix 框架中存储对象

java - Java中的getIdentifier()方法创建标识符字段?

java - 如何使用 AssertJ 检查一个属性值计数的对象列表?

linux - 在汇编程序中编写 linux 内核模块时的内存访问

amazon-ec2 - 如何获取我的实例 Amazon EC2 的公共(public) DNS (IPv4)

amazon-web-services - 调用ModifyRule操作时AWS ELB OperationNotPermission