apache可通过不同端口和域名托管多站点,需配置listen指令、virtualhost块、防火墙放行、目录权限及dns解析,并按系统启用配置。

Apache 支持在同一台服务器上同时用不同端口 + 不同域名托管多个站点,关键在于正确组合 <virtualhost></virtualhost> 与 ServerName,并确保端口监听、目录权限和配置启用三者协同生效。
确认并开放目标端口
Apache 默认只监听 80(HTTP)和 443(HTTPS)。若要用 8080、8081 等非标端口,必须显式声明:
- 编辑主配置文件(如
/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf) - 添加一行:
Listen 8080和Listen 8081(每端口一行) - 检查系统防火墙是否放行这些端口(如 Ubuntu 的
ufw allow 8080,CentOS 的firewall-cmd --add-port=8081/tcp --permanent)
为每个站点创建独立虚拟主机配置
每个站点需一个单独的 <virtualhost></virtualhost> 块,端口和域名严格对应:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 站点 A(
site1.example.com)走 8080:
ServerName site1.example.com
DocumentRoot /var/www/site1
Require all granted
- 站点 B(
site2.example.com)走 8081:
ServerName site2.example.com
DocumentRoot /var/www/site2
Require all granted
- 注意:
ServerAlias可选添加,比如加www.site1.example.com;ServerAdmin和日志路径建议也配上,便于排查
启用配置并验证权限
配置文件写完不等于生效,还需完成三步:
- 把配置文件放入标准位置:Ubuntu/Debian 放入
/etc/apache2/sites-available/,CentOS/RHEL 放入/etc/httpd/conf.d/(或通过Include引入) - 启用该配置:Ubuntu/Debian 执行
sudo a2ensite site1.conf,再sudo systemctl reload apache2;CentOS 直接sudo systemctl reload httpd - 确认目录权限:Apache 进程用户(如
www-data或apache)必须有读取DocumentRoot下文件的权限,必要时运行sudo chown -R www-data:www-data /var/www/site1
域名解析与访问测试
仅服务端配置好还不够,客户端需能正确解析并访问:
- DNS 层面:确保
site1.example.com和site2.example.com都已解析到服务器公网 IP - 浏览器访问:分别用
http://site1.example.com:8080和http://site2.example.com:8081测试,不能省略端口号 - 本地调试可临时改 hosts 文件(如 Windows 的
C:\Windows\System32\drivers\etc\hosts),添加:
192.168.1.100 site1.example.com
192.168.1.100 site2.example.com










