配置
需要修改apache httpd
加载配置文件httpd-info.conf
需要开放访问server-info
和server-status
的权限
docker
实现
创建Dockerfile
如下
FROM httpd:2.4-alpine
# 启用httpd info 模块
RUN sed -i "s|#Include conf/extra/httpd-info.conf|Include conf/extra/httpd-info.conf|g" /usr/local/apache2/conf/httpd.conf
# 加载mod info 开放访问server info 信息
RUN sed -i "s|#LoadModule info_module modules/mod_info.so|LoadModule info_module modules/mod_info.so|g" /usr/local/apache2/conf/httpd.conf
# 配置允许远程访问,避免403错误
RUN sed -i "s/Require host .example.com/Order deny,allow/g" /usr/local/apache2/conf/extra/httpd-info.conf
RUN sed -i "s/Require ip 127/Allow from all/g" /usr/local/apache2/conf/extra/httpd-info.conf
创建compose.yaml
services:
apache:
container_name: demo-apache
image: demo-apache
build: .
restart: always
ports:
- "80:80"
构建镜像
$ docker compose build
服务启动
$ docker compose up -d
查看访问配置信息
$ docker exec demo-apache cat /usr/local/apache2/conf/extra/httpd-info.conf
....
SetHandler server-status
Order deny,allow
Allow from all
....
SetHandler server-info
Order deny,allow
Allow from all
验证结果
浏览器访问地址http://127.0.0.1/server-status
获取服务状态信息
Apache Server Status for 127.0.0.1 (via 172.29.0.2)
Server Version: Apache/2.4.55 (Unix)
Server MPM: event
Server Built: Feb 11 2023 09:43:46
Current Time: Monday, 20-Mar-2023 07:01:24
Restart Time: Monday, 20-Mar-2023 07:00:29
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 54 seconds
Server load: 0.75 0.88 0.92
Total accesses: 2 - Total Traffic: 52 kB - Total Duration: 4
CPU Usage: u.02 s.02 cu0 cs0 - .0741% CPU load
.037 requests/sec - 986 B/second - 26.0 kB/request - 2 ms/request
1 requests currently being processed, 99 idle workers
Slot PID Stopping Connections Threads Async connections
total accepting busy idle writing keep-alive closing
0 8 no 0 yes 0 25 0 0 0
1 9 no 0 yes 0 25 0 0 0
2 10 no 0 yes 1 24 0 0 0
3 92 no 0 yes 0 25 0 0 0
Sum 4 0 0 1 99 0 0 0
___________________________________________________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
Srv PID Acc M CPU SS Req Dur Conn Child Slot Client Protocol VHost Request
1-0 9 0/1/1 _ 0.00 50 3 3 0.0 0.05 0.05 172.29.0.1 http/1.1 172.29.0.2:80 GET /server-info HTTP/1.1
2-0 10 0/1/1 _ 0.00 4 0 0 0.0 0.00 0.00 172.29.0.1 http/1.1 172.29.0.2:80 GET /serve-status HTTP/1.1
2-0 10 2/0/0 W 0.00 0 0 0 0.0 0.00 0.00 172.29.0.1 http/1.1 172.29.0.2:80 GET /server-status HTTP/1.1
访问http://127.0.0.1/server-info
获取服务基础配置信息
Apache Server Information
Subpages:
Configuration Files, Server Settings, Module List, Active Hooks, Available Providers
Sections:
Loaded Modules, Server Settings, Startup Hooks, Request Hooks, Other Hooks, Providers
Loaded Modules
core.c, event.c, http_core.c, mod_access_compat.c, mod_alias.c, mod_auth_basic.c, mod_authn_core.c, mod_authn_file.c, mod_authz_core.c, mod_authz_groupfile.c, mod_authz_host.c, mod_authz_user.c, mod_autoindex.c, mod_dir.c, mod_env.c, mod_filter.c, mod_headers.c, mod_info.c, mod_log_config.c, mod_mime.c, mod_reqtimeout.c, mod_setenvif.c, mod_so.c, mod_status.c, mod_unixd.c, mod_version.c,
Server Settings
Server Version: Apache/2.4.55 (Unix)
Server Built: Feb 11 2023 09:43:46
Server loaded APR Version: 1.7.2
Compiled with APR Version: 1.7.2
Server loaded APU Version: 1.6.3
Compiled with APU Version: 1.6.3
Server loaded PCRE Version: 8.45 2021-06-15
Compiled with PCRE Version: 8.45 2021-06-15
Module Magic Number: 20120211:126
Hostname/port: 127.0.0.1:80
Timeouts: connection: 60 keep-alive: 5
MPM Name: event
MPM Information: Max Daemons: 4 Threaded: yes Forked: yes
Server Architecture: 64-bit
Server Root: /usr/local/apache2
Config File: /usr/local/apache2/conf/httpd.conf
Server Built With:
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Startup Hooks