![会话缓存未配置...为什么?](https://linux22.com/image/592054/%E4%BC%9A%E8%AF%9D%E7%BC%93%E5%AD%98%E6%9C%AA%E9%85%8D%E7%BD%AE...%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我在 Windows Server 2003 R2 32 位上运行(实际上是尝试运行)Apache 2.4.2(加上 PHP 5.4.5 和 OpenSSL 1.0.1c,但我认为这并不重要),并且在错误日志中收到以下行:
[Sun Aug 05 11:52:39.546875 2012] [ssl:warn] [pid 5712:tid 348] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
尝试连接时https://localhost/
出现 102 - 连接被拒绝错误。
令我困惑的是SSLSessionCache
是配置:
SSLSessionCache "shmcb:C:/Program Files/Apache Software Foundation/Apache2.4/logs/ssl_scache(512000)"
它是完全相同的线我为 Apache 2.2.17 编写的配置文件(除了 /Apache2.2 而不是 2.4)运行良好。使用 mod_status 时,我没有得到“SSL/TLS 会话缓存状态”的信息,而 Apache 2.2 却能得到。
我认为两个httpd-ssl.conf文件之间没有太大区别,主要是路径之间,但看起来它们都没有问题。
80端口上的虚拟服务器运行正常。
我错过了什么?
编辑:对于那些感到疑惑的人来说,这并不是机器无法解析时收到的误导性警告ServerName
。Apache 2.2 对此没有问题,我甚至用刷新了 DNS 缓存netstat /flushdns
。
答案1
罪魁祸首不是在 http-ssl.conf 中,而是在 httpd.conf 中。
当我看到服务器状态没有报告“SSL/TLS 会话缓存状态”部分时,我怀疑根本,而不是一个空的部分。碰巧的是,Include
httpd.conf 中的指令指向一个旧的测试 .conf 文件,而不是 httpd-ssl.conf。
嗯,呵呵!这可能会在将来帮助其他像我一样的新手……
答案2
我也遇到了同样的问题,但现在已经修复。
我尝试在命令提示符中运行命令“netsh winsock reset”,然后重新启动我的机器。
问题是...最近安装了 skype,安装后 apache 和 skype 都在寻找相同的端口 80。即使您更改 skype 的端口号,它也无法正常工作...可能是因为 windows 中的某些缓存。更改 skype 的端口号并运行此命令后,它对我来说就起作用了。
答案3
我尝试了上述所有解决方案,但对我而言都不起作用。最后我意识到问题是由“shmcb”引起的,它基本上是指 apache socache_shmcb 模块。我在 httpd.conf 中禁用了它,启用它解决了这个问题。
因此,要解决此问题,请取消注释 httpd.conf 中的以下行:
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
答案4
也可能是服务器名称和 SSL 证书不匹配。然后它在 apache/error-log 中显示如下:server certificate does NOT include an ID which matches the server name
。