无需访问配置文件即可找出 Apache 指令设置的值?

无需访问配置文件即可找出 Apache 指令设置的值?

我正在对一个时间敏感的文件上传应用程序进行故障排除,怀疑问题可能是由于 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 超时并以某种方式证明这一点。不幸的是,我现在不知道它会是什么样子。

相关内容