共计 3619 个字符,预计需要花费 10 分钟才能阅读完成。
本篇中,我们会简要地讨论 Apache 服务器前端以及如何列出或查看已经启用的 Apache 模块。Apache 基于模块化的理念而构建,这样就可以让 web 管理员添加不同的模块来扩展主要的功能及增强性能。
常见的 Apache 模块有:
- mod_ssl – 提供了 HTTPS 功能。
- mod_rewrite – 可以用正则表达式匹配 url 样式,并且使用 .htaccess 技巧来进行透明转发,或者提供 HTTP 状态码回应。
- mod_security – 用于保护 Apache 免于暴力破解或者 DDoS 攻击。
- mod_status – 用于监测 Apache 的负载及页面统计。
在 Linux 中 apachectl 或者 apache2ctl 用于控制 Apache 服务器,是 Apache 的前端。
你可以用下面的命令显示 apache2ctl 的使用信息:
apache2ctl help | |
或者 | |
apachectl help |
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file] | |
[-C "directive"] [-c "directive"] | |
[-k start|restart|graceful|graceful-stop|stop] | |
[-v] [-V] [-h] [-l] [-L] [-t] [-S] | |
Options: | |
-D name : define a name for use in directives | |
-d directory : specify an alternate initial ServerRoot | |
-f file : specify an alternate ServerConfigFile | |
-C "directive" : process directive before reading config files | |
-c "directive" : process directive after reading config files | |
-e level : show startup errors of level (see LogLevel) | |
-E file : log startup errors to file | |
-v : show version number | |
-V : show compile settings | |
-h : list available command line options (this page) | |
-l : list compiled in modules | |
-L : list available configuration directives | |
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings) | |
-S : a synonym for -t -D DUMP_VHOSTS | |
-t -D DUMP_MODULES : show all loaded modules | |
-M : a synonym for -t -D DUMP_MODULES | |
-t : run syntax check for config files |
apache2ctl 可以工作在两种模式下,SysV init 模式和直通模式。在 SysV init 模式下,apache2ctl 用如下的简单的单命令形式:
apachectl command | |
或者 | |
apache2ctl command |
比如要启动并检查它的状态,运行这两个命令。如果你是普通用户,使用 sudo 命令来以 root 用户权限来运行:
$ sudo apache2ctl start | |
$ sudo apache2ctl status |
tecmint@TecMint ~ $ sudo apache2ctl start | |
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1/. Set the'ServerName' directive globally to suppress this message | |
httpd (pid 1456) already running | |
tecmint@TecMint ~ $ sudo apache2ctl status | |
Apache Server Status for localhost (via 127.0.0.1) | |
Server Version: Apache/2.4.18 (Ubuntu) | |
Server MPM: prefork | |
Server Built: 2016-07-14T12:32:26 | |
------------------------------------------------------------------------------- | |
Current Time: Tuesday, 15-Nov-2016 11:47:28 IST | |
Restart Time: Tuesday, 15-Nov-2016 10:21:46 IST | |
Parent Server Config. Generation: 2 | |
Parent Server MPM Generation: 1 | |
Server uptime: 1 hour 25 minutes 41 seconds | |
Server load: 0.97 0.94 0.77 | |
Total accesses: 2 - Total Traffic: 3 kB | |
CPU Usage: u0 s0 cu0 cs0 | |
.000389 requests/sec - 0 B/second - 1536 B/request | |
1 requests currently being processed, 4 idle workers | |
__W__........................................................... | |
................................................................ | |
...................... | |
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 |
当在直通模式下,apache2ctl 可以用下面的语法带上所有 Apache 的参数:
$ apachectl [apache-argument] | |
$ apache2ctl [apache-argument] |
可以用下面的命令列出所有的 Apache 参数:
$ apache2 help [在基于 Debian 的系统中] | |
$ httpd help [在 RHEL 的系统中] |
因此,为了检测你的 Apache 服务器启动了哪些模块,在你的发行版中运行适当的命令,-t -D DUMP_MODULES 是一个用于显示所有启用的模块的 Apache 参数:
--------------- 在基于 Debian 的系统中 --------------- | |
$ apache2ctl -t -D DUMP_MODULES | |
或者 | |
$ apache2ctl -M |
--------------- 在 RHEL 的系统中 --------------- | |
$ apachectl -t -D DUMP_MODULES | |
或者 | |
$ httpd -M | |
$ apache2ctl -M |
[root@tecmint httpd]# apachectl -M | |
Loaded Modules: | |
core_module (static) | |
mpm_prefork_module (static) | |
http_module (static) | |
so_module (static) | |
auth_basic_module (shared) | |
auth_digest_module (shared) | |
authn_file_module (shared) | |
authn_alias_module (shared) | |
authn_anon_module (shared) | |
authn_dbm_module (shared) | |
authn_default_module (shared) | |
authz_host_module (shared) | |
authz_user_module (shared) | |
authz_owner_module (shared) | |
authz_groupfile_module (shared) | |
authz_dbm_module (shared) | |
authz_default_module (shared) | |
ldap_module (shared) | |
authnz_ldap_module (shared) | |
include_module (shared) | |
.... |
就是这样!在这篇简单的教程中,我们解释了如何使用 Apache 前端工具来列出启动的 Apache 模块。
正文完
星哥玩云-微信公众号
