在网站管理和服务器配置中,Apache作为全球广泛使用的Web服务器软件,其灵活性和强大的功能让多域名管理变得高效且可控,本文将围绕Apache配置两个域名的实践展开,从基础配置步骤到虚拟主机的高级设置,再到常见问题的排查,帮助读者全面掌握多域名部署的核心要点。

Apache多域名配置的基础逻辑
Apache通过虚拟主机(Virtual Host)技术实现单台服务器托管多个域名,每个域名拥有独立的网站目录、配置规则和资源,虚拟主机主要基于两种模式:基于IP的虚拟主机和基于名称的虚拟主机,在大多数场景下,由于IPv4资源有限,基于名称的虚拟主机(通过域名区分)更为常用,这也是本文重点介绍的内容。
配置前需确保:
- 服务器已安装Apache服务(可通过
httpd -v检查版本); - 两个域名均已正确解析到服务器的公网IP(通过
ping 域名验证); - 为每个域名创建了独立的网站根目录(如
/var/www/domain1和/var/www/domain2),并设置正确的文件权限。
基于名称的虚拟主机配置步骤
启用虚拟主机模块
Apache默认可能未启用虚拟主机模块,需编辑主配置文件httpd.conf(通常位于/etc/httpd/conf/或/etc/apache2/),取消以下两行的注释:
LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule ssl_module modules/mod_ssl.so # 若需HTTPS,需启用SSL模块
创建虚拟主机配置文件
为避免主配置文件臃肿,建议为每个域名创建独立的配置文件,并存放在sites-available目录(若目录不存在需手动创建),创建domain1.conf和domain2.conf如下:
domain1.conf示例:
<VirtualHost *:80>
ServerName www.domain1.com
ServerAlias domain1.com # 绑定泛解析或备用域名
DocumentRoot /var/www/domain1
<Directory /var/www/domain1>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain1_error.log
CustomLog ${APACHE_LOG_DIR}/domain1_access.log combined
</VirtualHost> domain2.conf示例:

<VirtualHost *:80>
ServerName www.domain2.com
ServerAlias domain2.com
DocumentRoot /var/www/domain2
<Directory /var/www/domain2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain2_error.log
CustomLog ${APACHE_LOG_DIR}/domain2_access.log combined
</VirtualHost> 关键参数说明:
ServerName:主域名,需与浏览器输入的域名完全一致;ServerAlias:备用域名或泛域名(如*.domain1.com);DocumentRoot:网站根目录,存放网页文件;<Directory>:目录访问权限,AllowOverride All允许启用.htaccess文件。
启用虚拟主机配置
创建配置文件后,需通过a2ensite命令(Debian/Ubuntu系统)或手动创建软链接(CentOS/RHEL系统)启用站点。
sudo a2ensite domain1.conf sudo a2ensite domain2.conf
重启Apache服务加载配置
sudo systemctl restart apache2 # 或 sudo systemctl restart httpd
配置验证与问题排查
测试配置文件语法
重启前可通过以下命令检查配置语法是否正确:
sudo apachectl configtest
若返回Syntax OK,则表示配置文件无语法错误。
常见问题及解决方案
问题1:访问域名时显示默认页面
- 原因:
DocumentRoot路径错误,或未正确绑定域名; - 解决:检查
ServerName和DocumentRoot是否与实际配置一致,确保域名解析正确。
问题2:权限不足导致403错误

- 原因:网站目录所有者不是Apache运行用户(如
www-data或apache); - 解决:执行
chown -R www-data:www-data /var/www/domain*修改目录所有者。
问题3:访问404错误
- 原因:
Directory配置中未开启Indexes选项,或首页文件名不正确(如默认为index.html); - 解决:检查首页文件是否存在,或在
<Directory>中添加DirectoryIndex index.html index.php。
多域名配置对比表
| 配置项 | domain1.com | domain2.com |
|---|---|---|
| 网站根目录 | /var/www/domain1 | /var/www/domain2 |
| 默认首页 | index.html | index.php |
| 错误日志 | /var/log/apache2/domain1_error.log | /var/log/apache2/domain2_error.log |
| 是否启用HTTPS | 是(需配置SSL证书) | 否 |
进阶配置:HTTPS支持与重定向
若需为域名启用HTTPS,需购买或申请免费SSL证书(如Let’s Encrypt),并在虚拟主机配置中添加SSL相关参数,以domain1.com为例:
<VirtualHost *:443>
ServerName www.domain1.com
DocumentRoot /var/www/domain1
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/private.key
<Directory /var/www/domain1>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost> 可配置HTTP自动跳转HTTPS:
<VirtualHost *:80>
ServerName www.domain1.com
Redirect permanent / https://www.domain1.com/
</VirtualHost> Apache配置两个域名的核心在于虚拟主机的正确设置,包括域名绑定、目录权限、日志管理等,通过模块化配置和细致的参数调整,可轻松实现多域名隔离与个性化部署,实际操作中,需结合域名解析、文件权限、SSL证书等外部因素综合排查,确保访问流畅与安全,掌握这一技能后,无论是企业多业务站点还是个人博客集群,都能高效实现服务器资源的最优利用。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/26624.html




