Apache ServerName 配合访问日志怎么写

舞姬之光

舞姬之光

2026-08-05

857人浏览

原创

servername本身不写入日志,但决定虚拟主机路由和日志归属;必须为每个块唯一配置合法域名(如example.com),配合logformat "%{host}i"才能在access.log中准确记录访问域名。

apache servername 配合访问日志怎么写

ServerName 本身不直接写入访问日志,但它会影响日志中 Host 头解析结果虚拟主机路由准确性,进而决定哪条日志记录对应哪个站点。正确配置 ServerName + 日志格式,才能让 access.log 真实反映“谁在访问哪个域名”。

ServerName 必须明确且唯一

每个 <virtualhost></virtualhost> 块里只能有一个 ServerName,且必须是完整、合法的域名(不含协议、端口、引号或空格):

  • ✅ 正确:ServerName example.comServerName api.example.com
  • ❌ 错误:ServerName "example.com"ServerName example.com www.example.comServerName localhost:8080(仅限开发多端口场景)

如果 ServerName 缺失或非法,Apache 启动会报错或降级到默认虚拟主机,导致日志记录错乱——本该记到 admin.example.com 的请求,可能被记进 default 日志里。

用 %{Host}i 记录实际请求域名

默认日志格式(Common Log Format)不包含 Host 头,只记录 IP 和路径。要确认用户到底访问了哪个域名,需自定义 LogFormat:

Apache 2.4.62
Apache 2.4.62

PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。

下载
  • httpd.confhttpd-vhosts.conf 中添加:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Host}i\"" combined_with_host
  • 然后在 CustomLog 中启用:
CustomLog logs/access_log combined_with_host

这样每行日志末尾就会多出一列,比如 "example.com""www.example.com",清晰区分不同域名的访问流量。

多站点共用 IP 时,ServerName 决定日志归属

当多个域名绑定在同一 IP+端口(如 443),Apache 靠 ServerName + ServerAlias 匹配 Host 头来分发请求。若配置冲突:

  • 两个 <virtualhost></virtualhost> 都写 ServerName example.com → Apache 只认第一个,其余请求全记进第一个站点日志
  • 遗漏 ServerName,仅靠 ServerAlias → 请求无法精准匹配,可能 fallback 到默认站点,日志混杂

务必保证每个 HTTPS 虚拟主机都有独立、无歧义的 ServerName,并搭配对应的 SSL 证书和日志路径:

<virtualhost><br>    ServerName shop.example.com<br>    CustomLog logs/shop_access.log combined_with_host<br>    # ... SSL 配置<br></virtualhost>

避免 HostNameLookups 带来的性能损耗

不要开启 HostNameLookups on 来把 IP 替换成域名写入日志。它会强制每次请求做 DNS 查询,大幅拖慢日志写入速度,还可能因 DNS 故障丢日志。

  • ✅ 推荐:HostNameLookups off(默认值,保持即可)
  • ✅ 替代方案:用 %{Host}i 获取浏览器发送的真实 Host 头,准确又高效

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

apache

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

618

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1216

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

429

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

1032

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

1849

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

322

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程