
justb4/awstats本镜像为Awstats的一体化Docker解决方案,用于多域名的定时日志处理,配置简单且可通过内置网页访问统计结果。镜像旨在最小化主机依赖,支持自包含的日志分析流程,适合需要集中管理多个网站访问统计的场景。
aw-update.sh脚本,一键更新所有站点统计AWSTATS_PATH_PREFIX环境变量配置子路径前缀容器内部依赖以下目录结构:
/etc/awstats/sites/:存放站点配置文件,支持两种格式
.env文件:简易变量配置(推荐).conf文件:完整awstats配置(高级需求)/var/local/log/:存放日志文件(可通过配置自定义路径/文件名)/var/lib/awstats/:awstats数据存储目录(需持久化,建议映射为Docker卷)awstats数据存储在/var/lib/awstats/,为避免容器重启后数据丢失,需将此目录映射为持久卷:
bash# 示例:使用本地目录作为持久卷 docker run -v /host/path/to/awstats-data:/var/lib/awstats ...
bashdocker run -d \ -p 8080:80 \ -v /host/logs:/var/local/log \ -v /host/awstats-sites:/etc/awstats/sites \ -v /host/awstats-data:/var/lib/awstats \ --name awstats \ justb4/awstats
yaml# docker-compose.yml示例 version: '3' services: awstats: image: justb4/awstats ports: - "8080:80" volumes: - ./logs:/var/local/log - ./awstats-sites:/etc/awstats/sites - awstats-data:/var/lib/awstats environment: - AWSTATS_PATH_PREFIX=/awstats # 可选,配置反向代理子路径 volumes: awstats-data:
在/etc/awstats/sites/目录下创建example.com.env:
iniSITE_DOMAIN=example.com LOG_FILE=/var/local/log/example.com-access.log SITE_ALIAS=[***]
在/etc/awstats/sites/目录下创建example.com.conf,内容遵循awstats配置规范:
confLogFile="/var/local/log/example.com-access.log" SiteDomain="example.com" HostAliases="[***]"
Awstats仅处理日志中比最新已知记录更新的行,因此需按时间顺序从旧到新处理历史日志。处理前建议清除已有数据:
bashdocker exec -it awstats rm /var/lib/awstats/*
bash#!/bin/bash # 处理压缩的历史Apache日志(从.log.60到.log.2) LOGDIR="/var/local/log" LOGNAME="access.log" END=60 # 从60到2反向循环处理 for i in $(seq $END -1 2) do logFile="${LOGDIR}/${LOGNAME}.${i}" echo "处理日志: ${logFile}" docker exec -it awstats gunzip ${logFile}.gz docker exec -it awstats awstats -config=example.com -update -LogFile="${logFile}" docker exec -it awstats gzip ${logFile} done # 处理未压缩的最近日志 docker exec -it awstats awstats -config=example.com -update -LogFile="${LOGDIR}/${LOGNAME}.1" docker exec -it awstats awstats -config=example.com -update -LogFile="${LOGDIR}/${LOGNAME}"
本镜像基于debian-slim(buster版本)构建,旨在实现高度自包含:
supervisord管理服务进程:
aw-setup.sh:初始化配置本Docker镜像基于pabra/docker_awstats项目开发,原项目使用Alpine Linux。因GeoIP、bash脚本等高级特性需求,本镜像改为基于debian-slim构建。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务