两周前,我启动了一个装有 Windows Server 2012 的 AWS EC2 实例。然后我安装了最新版本的 wamp(我必须使用 apache,因为我正在做通配符域,而 IIS 不支持它们)。我将我的站点(文件、数据库记录和 DNS 条目)从旧服务器迁移到新服务器。
WAMP 可以正确运行站点 5 到 10 分钟,然后大约需要 30 秒来加载页面。
经过一番搜索,我发现这是因为 Windows Server 2012 默认设置为使用 IPv6,而 apache 设置为使用 IPv4。我访问过的网站为我提供了几项解决此问题的方法 - 其中包括:
1) 从主机文件中注释掉::1 2) 禁用 IIS(在 Windows Server 2012 中默认启用) 3) 将我的 apache.conf 文件更改为“Listen 0.0.0.0:80”而不是“Listen 80” 4) 将我的 apache.conf 文件更改为“ServerName localhost”而不是“ServerName 127.0.0.1”
我可以重新启动所有 wamp 服务,页面将再次立即开始加载,但又过了 5 到 10 分钟,同样的问题出现了,页面需要永远加载。
我已经进行了上述所有这些更改,但问题仍然存在。除了启动未运行 Windows Server 2012 的新服务器外,我没有其他想法。
有没有人以前遇到过这个问题并且知道修复方法?
最佳答案
我相信这是在 Windows 上运行的 Apache 中的一个错误。它与释放连接有关,或者更确切地说不这样做
已知将这些添加到 httpd.conf 中会有帮助
AcceptFilter http 无 AcceptFilter https 无 启用发送文件关闭 关闭 EnableMMAP
该指令通过协议(protocol)类型启用操作系统特定的监听套接字优化。 在 Windows 上,没有人使用 accept() 而不是 AcceptEx() 并且不会在连接之间回收套接字。这对于驱动程序支持损坏的网络适配器以及一些虚拟网络提供商(例如 vpn 驱动程序或垃圾邮件、病毒或 spy 软件过滤器)很有用。
在进行更改之前备份您的 httpd.conf。在将这些参数放入 httpd.conf 之前,检查这些参数是否已经存在于 httpd.conf 的某处! !!!!!!
关于windows - 让 WAMP 在 Windows Server 2012 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356843/