我有一台启用 SSL 的 Apache 服务器,它利用轮换日志来存档日志文件。问题是,当日志“轮换”时,一些信息会丢失……
例如,所有经过验证的用户名均缺失。
ssl_access_log 将记录:
- 111.222.333.44 - testuser [24/Aug/2009:11:58:58 -0700] "GET /favicon.ico HTTP/1.1" 404 292 "http://website.com“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.1) Gecko/20050729 Firefox/3.5.2 (.NET CLR 3.5.30729)”
但轮换后的日志将仅存档:
- 111.222.333.44 - - [24/Aug/2009:11:58:58 -0700] "GET /favicon.ico HTTP/1.1" 302 303 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.1) Gecko/20050729 Firefox/3.5.2 (.NET CLR 3.5.30729)"
这是我的 httpd.conf 文件的设置:
对于旋转..
- CustomLog“| /usr/sbin/rotatelogs /etc/httpd/logs/ssl_access 604800”组合
对于我的虚拟主机的 https 端口指令..
- 日志格式“%h%l%u%t \“%r\”%>s%b \“%{Referer}i\” \“%{User-Agent}i\””
- TransferLog 日志/ssl_access_log
为什么经过身份验证的用户没有登录轮换日志?
答案1
这表明您的配置存在其他问题。有迹象表明 TransferLog logs/ssl_access_log 指令位于虚拟主机定义内,而轮换日志不在。由于 ssl_access_log 记录经过身份验证的用户,而轮换日志不记录,我猜应用轮换日志的服务实际上没有配置任何身份验证。
另一件事是,这些日志实际上记录了两个不同的 http 请求。轮换日志中的请求得到了 302 响应,重定向到其他地方。ssl_access_log 中的请求得到了 404,未找到响应。另一个请求可能是浏览器获取 302,然后尝试从其他地方获取它的结果,但也可能是其他原因。
简而言之,这些日志记录了不同的虚拟主机。重定向的原因可能是您的服务器的规范名称设置、重写规则或其他原因,根据这些信息,无法判断。