我正在对一个时间敏感的文件上传应用程序进行故障排除,怀疑问题可能是由于 Apache 的KeepAliveTimeout
指令造成的。刚刚打电话给托管支持部门,询问他们的设置是什么。他们告诉我“这不是公开的信息”。我有共享托管服务器的 shell 访问权限。
搜索httpd.conf
终止且无成功。
有没有办法在无法访问的情况下找出指令值的值httpd.conf
?
答案1
尝试一下httpd -V
。这将向您显示 Apache 正在查找配置文件的位置。您正在寻找类似以下内容的内容:
-D SERVER_CONFIG_FILE="conf/httpd.conf"
有一个显示设置的选项,但目前它不是很有用:-S Show the settings as parsed from the config file (currently only shows the virtualhost settings).
如果您有权访问 vhost 设置,那么您可以TimeOut
自行设置:
http://httpd.apache.org/docs/2.2/mod/core.html#timeout
希望有所帮助。
答案2
Apache 和 NGinx 都使用 5 分钟作为其默认保持活动超时。
最有可能的是,您无法访问该信息 - 这些信息包含在服务器的配置文件中 - 通常情况下,即使托管公司稍微有点儿能力,客户也无法访问这些信息。您可以使用 nmap 等简单的网络工具找出哪个服务器。
您可以使用 telnet:
telnet host 80
进入 telnet 后尝试:
get / HTTP/1.0
在响应中查找以以下行开头的行
Server:
您可以使用“ps ax”列出服务器的进程 - 您可能会或可能不会返回完整列表。Apache 现在显示为 apache2,或者可能显示为 httpd,具体取决于操作系统的类型。
使用 curl 您可能能够编写一个命令行来执行 keepalive 超时并以某种方式证明这一点。不幸的是,我现在不知道它会是什么样子。