You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 10系统下Awstats统计访问量远低于实际值的排查问题

问题描述

我使用Awstats已有多年,在升级到Debian 10系统前所有功能运行正常。我的服务采用特殊架构:Zope框架前置Apache2服务器,通过Apache2配置重写规则将请求转发至Zope处理。

以下是我的Apache2配置文件vhost.conf内容:

<VirtualHost *:443>

    # Test local
    ServerAdmin henry@example.com
    ServerName example.com
    ServerAlias www.example.com

    # LOG
    CustomLog /var/log/apache2/access.log combined
    #CustomLog /var/log/apache2/access.log common

    # ACTIVATE SSL
    SSLEngine On
    # CONFIG FOR LETSENCRYPT
    SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
    SSLHonorCipherOrder On
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    Alias /awstats-icon "/usr/share/awstats/icon"

    RewriteEngine On
    # www to non www for HTTPS
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
    RewriteRule ^/(.*) https://example.com/$1 [R=301,L]
    RewriteCond %{REQUEST_URI} !^/awstats [NC]
    RewriteCond %{REQUEST_URI} !^/cgi-bin/(search|awstats) [NC]
    RewriteRule ^/(.*)  https://localhost:8443/++vh++https:%{SERVER_NAME}:443/++/$1 [P,L]
    SSLProxyEngine On
    RequestHeader set Front-End-Https "On"
    #CacheDisable *

<Files "awstats.pl">
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        SetHandler cgi-script
        Satisfy any
        Order deny,allow
        Deny from all
        AuthType Basic
        AuthName "Advanced Web Statistics"
        AuthUserFile /etc/apache2/awstats-users.pwd
        Require valid-user
</Files>

<Directory "/usr/share/awstats/icon">
        AllowOverride None
</Directory>

<Directory "/usr/share/awstats/icon">
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

<Directory "/usr/lib/cgi-bin/">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        SSLRequireSSL
</Directory>

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin henry@example.com
    ServerName example.com
    ServerAlias www.example.com

<IfModule mod_rewrite.c>

    RewriteEngine On
    # Redirect to ww.xx.yy.zz
    RewriteCond %{HTTP_HOST} ^ww\.xx\.yy\.zz
    RewriteRule (.*) http://example2.com$1 [R=301,L]

    # www to non www for HTTP and HTTPS
    RewriteCond %{REQUEST_URI} ^/www\. [NC,OR]
    RewriteCond %{REQUEST_URI} !^/cars/video [NC]
    # Rewrite below works : redirect 80 => https
    RewriteRule ^/(.*) https://example.com/$1 [R=301,L]

    # www to non www for HTTP
    #RewriteCond %{REQUEST_URI} !^/cars/video [NC]
    RewriteRule ^/(.*)  http://localhost:9674/++vh++http:%{SERVER_NAME}:80/++/$1 [P,L]

</IfModule>

</VirtualHost>

升级后Awstats统计的日访问量几乎为0:
awstats stats

升级到Debian10前日均独立访客可达200次。我已将上述vhost.conf配置文件引入到/etc/apache2/httpd.conf文件中,httpd.conf的配置内容如下:

# If you prefer a single logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
CustomLog /var/log/apache2/access.log combined

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
#LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
#LoadModule authn_alias_module /usr/lib/apache2/modules/mod_authn_alias.so
LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so
#LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadModule mime_magic_module /usr/lib/apache2/modules/mod_mime_magic.so
LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
#LoadModule disk_cache_module /usr/lib/apache2/modules/mod_disk_cache.so
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
# Get back visitors for awstats
#LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so

#LogLevel debug
LogLevel alert rewrite:trace3
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

NameVirtualHost *:80

include vhost.conf

经检查,有访客访问时access.log日志文件写入正常,不清楚问题出在什么环节,请问可能是哪里配置错误导致该统计异常?

更新

当前使用的awstats.conf配置需自行核对对应参数。


解决方案

按优先级从高到低排查以下问题:

  • 日志格式匹配问题
    首先手动执行Awstats更新命令,查看解析报错:
/usr/lib/cgi-bin/awstats.pl -config=example.com -update

如果输出存在大量Corrupted record提示,说明awstats.conf中配置的LogFormat与Apache中定义的combined格式不匹配。你需要将awstats.conf的LogFormat调整为和Apache的combined格式完全一致:

LogFormat="%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
  • 真实访客IP识别问题
    你配置中mod_remoteip处于禁用状态,如果你的站点前置有CDN、负载均衡等代理层,Apache日志中记录的%h是代理节点的IP而非真实访客IP,Awstats会将大量相同代理IP的访问判定为无效访问或者爬虫。需要启用mod_remoteip,在Apache配置中添加:
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.0/8 # 替换为你的代理节点IP段

同时将日志格式中的%h替换为%a,确保日志记录真实访客IP。

  • 日志文件权限问题
    确认Awstats运行用户(默认是www-data)有/var/log/apache2/access.log的读取权限,Debian 10默认收紧了Apache日志的访问权限,你可以执行以下命令调整:
chmod 644 /var/log/apache2/access.log
usermod -aG adm www-data
  • Awstats域名配置不匹配
    检查awstats.conf中的SiteDomain和HostAliases配置,确保和你实际使用的站点域名完全一致,不符合的域名访问记录会被Awstats过滤。

  • 定时任务失效
    检查/etc/cron.d/awstats文件是否存在,以及crond服务是否正常运行,Debian系统升级可能会重置原有定时任务配置,导致日志没有被定期导入到Awstats数据库中。


内容的提问来源于stack exchange,提问作者user1773603

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 06:12:04