ServerName 必须与实际访问地址一致且带端口(如localhost:8080),取消注释、匹配Listen端口、避免协议头和未解析域名,否则导致虚拟主机错配或HTTPS证书不匹配。

ServerName 是 Apache 的核心配置项,用来明确告诉服务器“它对外自称什么”,直接影响重定向、虚拟主机匹配、自生成 URL 等行为。设错会导致访问异常、HTTPS 证书不匹配、.htaccess 不生效等问题。
直接写法(推荐):
ServerName localhost:80
或(如果改了端口,比如用了 8080):
ServerName localhost:8080
关键要点:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 必须取消前面的
#注释,否则不生效 - 值要与你实际访问的地址一致:
- 用
http://localhost访问 → 写localhost - 用
http://192.168.1.100访问 → 写192.168.1.100 - 用
http://myapp.test访问 → 写myapp.test(同时需在系统 hosts 文件中映射该域名到127.0.0.1)
- 用
- 端口号必须和
Listen指令一致(比如Listen 8080,那ServerName就得带:8080) - 不要写成
www.example.com这类未解析的公网域名,除非你真有 DNS 或 hosts 映射
常见错误写法:
-
#ServerName www.example.com:80→ 注释状态,无效 -
ServerName 127.0.0.1→ 缺少端口,若Listen是8080,会出错 -
ServerName http://localhost→ 协议头http://是非法的,Apache 只认host:port格式
验证是否生效:
修改后,执行命令检查语法:
apachectl -t # Linux/macOS httpd -t # Windows 下有时用这个
返回 Syntax OK 才算通过,再重启 Apache。
如果用 XAMPP 或 WAMP,记得改的是 xampp\apache\conf\httpd.conf,不是子目录里的其他 conf 文件。

















