了解 Apache 服务状态

在本文中,我们将回顾 Apache 服务状态。 有时检查一个性能 Cloud 专用服务器可能很困难。 Apache 具有内置实用程序,可帮助监控设备的使用和性能 Apache. Apache 状态还提供有助于性能审计和控制调整的信息。

使用 Systemctl 状态

访问 Apache 状态比较容易。 您必须以 root 身份通过 SSH 连接到服务器,然后在命令提示符处键入以下命令:

root@host [~]# systemctl status httpd.service

在 cPanel 服务器上运行该命令将返回类似于以下内容的数据:

root@host [~]# systemctl status httpd
 httpd.service - Apache web server managed by cPanel EasyApache
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-10-02 05:04:55 EDT; 6 days ago
 Main PID: 1587 (httpd)
    Tasks: 325
   Memory: 102.1M
   CGroup: /system.slice/httpd.service
           ├─  1587 /usr/sbin/httpd -k start
           ├─100800 /usr/local/cpanel/bin/splitlogs --dir=/etc/apache2/logs/domlogs --main=host.domain.com --suffix=-byte...
           ├─100801 /usr/local/cpanel/bin/splitlogs --dir=/etc/apache2/logs/domlogs --main=host.domain.com --mainout=/etc...
           ├─100802 /usr/sbin/httpd -k start
           ├─100803 /usr/local/cpanel/3rdparty/bin/perl /usr/local/cpanel/bin/leechprotect
           ├─100804 /usr/sbin/httpd -k start
           ├─100805 /usr/sbin/httpd -k start
           ├─100807 /usr/sbin/httpd -k start
           ├─100822 /usr/sbin/httpd -k start
           └─100858 /usr/sbin/httpd -k start
root@host [~]# 

粗体部分的目的如下。

已加载: 这是配置文件的位置。
积极的:这表明该服务处于活动状态并正在运行。
主PID: 这是主要 Apache 进程标识。
任务:与进程关联的任务总数。
记忆:进程正在使用的内存量。
C组块:这部分表示apache子进程的控制组(包括cPanel中的splitlogs)

在系统上运行 systemctl status httpd.service 命令 互联网 服务器将返回类似于以下内容的内容:

[root@host ~]# systemctl status httpd.service
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/httpd.service.d
           └─limits.conf
   Active: active (running) since Fri 2019-10-04 13:16:37 EDT; 4 days ago
 Main PID: 68308 (httpd)
   Status: "Total requests: 3950; Idle/Busy workers 100/0;Requests/sec: 0.0109; Bytes served/sec:   6 B/sec"
   CGroup: /system.slice/httpd.service
           ├─43782 /usr/sbin/rotatelogs -l -f /home/user/var/domain.com/logs/error-ssl-%Y-%m-%d.log 86400
           ├─43784 /usr/sbin/rotatelogs -l -f /home/user/var/domain.com/logs/error-%Y-%m-%d.log 86400
           ├─43786 /usr/sbin/rotatelogs -l -f /home/user/var/domain.com/logs/transfer-ssl-%Y-%m-%d.log 86400
           ├─43787 /usr/sbin/rotatelogs -l -f /home/user/var/domain.com/logs/transfer-%Y-%m-%d.log 86400
           ├─43792 /usr/sbin/httpd -DSSL -DFOREGROUND
           ├─43819 /usr/sbin/fcgi- -DSSL -DFOREGROUND
           ├─43820 /usr/sbin/httpd -DSSL -DFOREGROUND
           ├─43821 /usr/sbin/httpd -DSSL -DFOREGROUND
           ├─43857 /usr/sbin/httpd -DSSL -DFOREGROUND
           ├─68308 /usr/sbin/httpd -DSSL -DFOREGROUND
           └─70722 /usr/sbin/httpd -DSSL -DFOREGROUND

Oct 04 13:16:37 host.domain.com systemd[1]: Starting The Apache HTTP Server...
Oct 04 13:16:37 host.domain.com systemd[1]: Started The Apache HTTP Server.
Oct 06 05:35:19 host.domain.com systemd[1]: Reloading The Apache HTTP Server.
Oct 06 05:35:19 host.domain.com systemd[1]: Reloaded The Apache HTTP Server.
[root@host ~]# 

粗体部分的目的如下。

已加载: 这是配置文件的位置。
投递: 这个文件定义了打开 文件限制 为了 Apache.
积极的:这表明该服务处于活动状态并正在运行。
主PID: 这是主要的 Apache 进程标识。
任务:与进程关联的任务总数。
记忆:进程正在使用的内存量。
C组块:这部分表示控制组 Apache的子进程(包括日志轮换)

使用 Apachectl 状态

apachectl 命令是 Apache http服务器。 它旨在帮助一个 admin 控制的功能 Apache (httpd) 守护进程。

apachectl 脚本可以在两种模式下运行。 首先,它充当设置所需环境变量的 httpd 命令的简单前端,然后调用 httpd 服务,传递任何命令行参数。 其次,apachectl 充当 SysV 初始化处理脚本,使用 start、restart 和 stop 等单字参数,并将它们转换为 httpd 的适当命令。

apachectl 命令使用以下参数返回信息:

  • 开始: 这个参数开始 Apache httpd 守护进程。
  • 停止: 这个论点停止 Apache httpd 守护进程。
  • 重新开始:这个参数重新启动 Apache httpd 守护进程。 如果服务未运行,此命令将启动 https 服务。 它还在启动服务之前检查配置文件,以确保服务不会死机。
  • 完整状态:此参数提供来自 mod_status 的完整状态报告。 要使此命令起作用,您需要在服务器上启用 mod_status。 可以使用 Lynx 等基于文本的浏览器来查看此信息。
  • 地位:此参数显示一个类似于 fullstatus 参数的简短状态报告,只是不显示当前正在服务的 http 请求列表。
  • 优美: 这个参数优雅地重启了 httpd 服务。 如果服务没有运行,它就会启动。
  • 优雅停止: 这个论点优雅地停止了 Apache httpd 服务。 此参数与典型的停止参数不同,因为它会使连接保持打开状态而不是停止它们。
  • 配置测试:此参数对 http.conf 文件运行配置检查,无论使用哪种报告,语法都可以,否则它将提供有关它发现的任何语法错误的详细信息。
  • 开始:此参数启动启用 SSL 支持的 httpd 服务。 这将需要编辑配置文件以包含适当的指令,然后使用标准的 apachectl start。

例子:

root@host [~]# apachectl status

第一部分 Apache 状态提供有关信息 Apache的版本以及构建服务的时间。 它还表示它正在使用的 MPM 模块(多处理模块)。 此外,该命令还记录当前时间、上次重新启动 httpd 的时间、服务器正常运行时间、负载以及与服务器状态相关的其他多种类型的信息。 该信息还可以帮助确定是否 Apache 由于缺少空闲的工作人员,无法再提供任何请求。

<pre>root@host [~]# apachectl status
                  Apache Server Status for localhost (via ::1)
   Server Version: Apache/2.4.41 (cPanel) OpenSSL/1.0.2t mod_bwlimited/1.4
   Server MPM: worker
   Server Built: Sep 16 2019 17:10:52
----------------------------------------------------------------------
   Current Time: Wednesday, 09-Oct-2019 09:36:04 EDT
   Restart Time: Wednesday, 02-Oct-2019 05:04:55 EDT
   Parent Server Config. Generation: 12
   Parent Server MPM Generation: 11
   Server uptime: 7 days 4 hours 31 minutes 9 seconds
   Server load: 0.08 0.05 0.05
   Total accesses: 184569 - Total Traffic: 1.4 GB - Total Duration: 101212423
   CPU Usage: u67.46 s30.84 cu231.76 cs74.02 - .0651% CPU load
   .297 requests/sec - 2445 B/second - 8.0 kB/request - 548.372 ms/request
   3 requests currently being processed, 122 idle workers

 ___________________W______________________________..............
 ..........._____________________________________________________
 __________________W__K

 Scoreboard Key:
 "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
 "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
 "C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
root@host [~]# 
</pre>

状态的后半部分以文本表示所有的 Apache 工人在特定时刻正在做的事情。 它下面的键告诉每个字母代表什么。 此信息可以帮助进行故障排除 Apache 当它无法跟上交通时。 为了 example, 如果 Apache 难以为服务器发出的所有请求提供服务。 如果 Apache status 列出了一堆“K”(对于保持活动的请求),可以调整 httpd.conf 中的 KeepAlive 变量。

使用其他 Apache 选项

常规的 Apache status 提供了大量有用的信息,但其他 Apache 选项提供更具体的信息。 要查看这些选项,我们可以运行:

systemctl status httpd.service -h

这提供了类似于以下内容的输出:

<pre>[root@host httpd.service.d]# systemctl status httpd.service -h
systemctl [OPTIONS...] {COMMAND} ...

Query or send control commands to the systemd manager.

  -h --help           Show this help
     --version        Show package version
     --system         Connect to system manager
  -H --host=[USER@]HOST
                      Operate on remote host
  -M --machine=CONTAINER
                      Operate on local container
  -t --type=TYPE      List units of a particular type
     --state=STATE    List units with particular LOAD or SUB or ACTIVE state
  -p --property=NAME  Show only properties by this name
  -a --all            Show all loaded units/properties, including dead/empty
                      ones. To list all units installed on the system, use
                      the 'list-unit-files' command instead.
  -l --full           Don't ellipsize unit names on output
  -r --recursive      Show unit list of host and local containers
     --reverse        Show reverse dependencies with 'list-dependencies'
     --job-mode=MODE  Specify how to deal with already queued jobs, when
                      queueing a new job
     --show-types     When showing sockets, explicitly show their type
  -i --ignore-inhibitors
                      When shutting down or sleeping, ignore inhibitors
     --kill-who=WHO   Who to send signal to
  -s --signal=SIGNAL  Which signal to send
     --now            Start or stop unit in addition to enabling or disabling it
</pre>

此选项提供有关所有可用参数的信息。

虽然 Apache status 和 fullstatus 命令看起来信息量巨大,这些信息可以帮助诊断许多类型的问题 Apache.

我们发现,使用这项技术可以提高我们符合 HIPAA 标准的托管服务的速度和可靠性。 Liquid Web 的英雄支持始终可帮助客户设置此软件或协助解决许多其他问题。 如果您需要任何帮助,请拨打我们的免费电话 1.800.580.4985 / 国际电话 517.322.0434 联系我们,通过 [email protected] 打开支持票,或通过以下方式联系 聊天. 我们随时为您提供帮助!