【发布时间】:2015-09-16 16:32:51
【问题描述】:
我们的网站在一段时间(2-3 天)后无法从外部(不是本地主机)访问。
我们使用 Apache HTTP Server 2.4。服务器上托管了 4 个网站,主要使用端口 443 使用自签名服务器证书。到目前为止,一切运行良好。由于我使用 Alias 指令和 PHP 添加了一个新网站,过了一段时间 all 网站不再可以从远程访问。但是,我可以从服务器上的 localhost 访问它们。
当网站不再可访问时,错误日志不显示任何条目。我们目前通过简单地重新启动 Apache HTTP 服务器来解决问题,一切都恢复正常。问题是,我们需要 24/7 全天候可用的服务。
这是当前的 httpd.conf:
Listen 443
SSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost *:443>
DocumentRoot "D:/htdocs"
ServerName myserver.net:443
Alias /site2 "${WEBROOT}/site2"
Alias /site3 "${WEBROOT}/site3"
ScriptInterpreterSource Registry-Strict
Options +ExecCGI +FollowSymLinks -Indexes
DirectoryIndex index.cgi index.html index.php
SSLEngine on
SSLCertificateFile "${SRVROOT}/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/ssl/server.key"
</VirtualHost>
和
LoadModule php5_module "${PHPROOT}/php5apache2_4.dll"
<IfModule php5_module>
AddHandler application/x-httpd-php .php
PHPIniDir "${PHPROOT}"
</IfModule>
有人知道在哪里看吗?非常感谢。
更新
服务器运行了 13 天,然后由于一些配置更改,我们不得不重新启动它。用了1天,问题又回来了。我查看了服务器状态页面,但找不到可能是什么问题的线索:
Server Version: Apache/2.4.16 (Win64) OpenSSL/1.0.1p PHP/5.6.12
Server MPM: WinNT
Server Built: Jul 13 2015 12:31:58
Distributed by: The Apache Haus
Compiled with: Visual Studio 2012
Current Time: Tuesday, 06-Oct-2015 11:38:01 Mitteleuropäische Sommerzeit
Restart Time: Sunday, 04-Oct-2015 23:40:51 Mitteleuropäische Sommerzeit
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 1 day 11 hours 57 minutes 9 seconds
Server load: -1.00 -1.00 -1.00
Total accesses: 326772 - Total Traffic: 4.2 GB
2.52 requests/sec - 33.8 kB/second - 13.4 kB/request
1 requests currently being processed, 63 idle workers
【问题讨论】:
-
如果可以从内部访问但不能从外部访问,则更有可能是防火墙问题。
-
@Capsule 所以你认为有些东西正在关闭防火墙的端口? apache 是否在重启时重新配置防火墙?
-
否,但它可能会释放卡住的连接并告诉防火墙可以再次接受新连接。您应该激活 Apache 的
server-status并在重新启动它之前检查发生了什么。你可能会看到一些不应该存在的 Kee-Alive 连接,或者其他一些奇怪的东西。 -
@Capsule 我设法看到了服务器状态页面。服务器的正常运行时间现在是 6 天 3 小时。我确实看到每天都有越来越多的闲置工人(现在是 63 人)。有什么想法可能是什么问题?您想查看完整的状态页面吗?
-
我会建议限制备用进程或线程的数量,但显然你不能在 Windows 中这样做,根据:httpd.apache.org/docs/2.4/mod/mpm_winnt.html。一旦您无法从外部访问服务器,您应该尝试弄清楚空闲工作人员的数量是多少,也许您正在做某事。