Apache作为全球使用最广泛的Web服务器软件之一,其强大的域名配置功能能够帮助用户灵活管理多个网站,通过配置二级域名,用户可以在一个主域名下创建多个子站点,既节省服务器资源,又能实现清晰的业务划分,本文将详细介绍Apache如何配置二级域名,涵盖环境准备、配置步骤、常见问题处理等关键环节,帮助读者顺利完成部署。

环境准备与基础检查
在开始配置二级域名之前,需要确保服务器环境满足基本要求,确认Apache已正确安装并运行,可通过systemctl status httpd(CentOS/RHEL)或systemctl status apache2(Debian/Ubuntu)命令检查服务状态,确保域名已正确解析到服务器IP地址,包括主域名和二级域名,可通过ping命令验证域名解析是否生效,例如ping sub.example.com应返回服务器IP。
需要检查Apache的虚拟主机模块是否启用,在配置文件中,确保以下两行未被注释(以CentOS为例):
LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule rewrite_module modules/mod_rewrite.so
若未启用,需取消注释并重启Apache服务,建议备份原有配置文件,避免配置错误导致服务中断。
创建网站目录与权限设置
为二级域名创建独立的网站目录是配置的基础步骤,假设主域名为example.com,二级域名为sub.example.com,可在Apache的网站根目录(如/var/www/)下创建对应文件夹:
sudo mkdir -p /var/www/sub.example.com/public_html
public_html将存放网站文件,设置目录所有者及权限,确保Apache进程有读取权限:
sudo chown -R apache:apache /var/www/sub.example.com/public_html sudo chmod -R 755 /var/www/sub.example.com/public_html
为测试配置,可在public_html中创建一个简单的index.html如下:
<!DOCTYPE html>
<html>
<head>Subdomain Test</title>
</head>
<body>
<h1>Welcome to sub.example.com</h1>
</body>
</html>配置虚拟主机文件
Apache的虚拟主机配置是二级域名的核心,主流Linux发行版通常提供两种配置方式:基于端口的配置(较少使用)和基于名称的配置(推荐),以下以名称虚拟主机为例,说明具体操作。

创建虚拟主机配置文件
在Apache的配置目录(如/etc/httpd/conf.d/或/etc/apache2/sites-available/)创建新的配置文件,例如sub.example.com.conf如下:
<VirtualHost *:80>
ServerName sub.example.com
ServerAlias www.sub.example.com
DocumentRoot /var/www/sub.example.com/public_html
ErrorLog /var/log/httpd/sub.example.com_error.log
CustomLog /var/log/httpd/sub.example.com_access.log combined
</VirtualHost>参数说明:
ServerName:指定主域名,必须与解析的二级域名完全一致。ServerAlias:定义域名别名,可选www前缀。DocumentRoot:指定网站根目录路径。ErrorLog和CustomLog:分别定义错误日志和访问日志路径。
启用虚拟主机配置
在Debian/Ubuntu系统中,需使用a2ensite命令启用站点:
sudo a2ensite sub.example.com.conf
在CentOS/RHEL系统中,确保文件未被包含在httpd.conf的# Virtual hosts注释块下,或手动添加:
IncludeOptional conf.d/*.conf
配置SSL证书(可选但推荐)
若需启用HTTPS,需为二级域名配置SSL证书,可通过Let’s Encrypt免费获取证书,步骤如下:
安装Certbot:
sudo yum install certbot python3-certbot-apache # CentOS sudo apt install certbot python3-certbot-apache # Debian/Ubuntu
获取并安装证书:

sudo certbot --apache -d sub.example.com -d www.sub.example.com
Certbot会自动修改虚拟主机配置,添加443端口监听和SSL相关指令,配置完成后,可通过浏览器访问
https://sub.example.com验证是否生效。
测试与重启服务
完成所有配置后,需重启Apache服务使配置生效:
sudo systemctl restart httpd # CentOS sudo systemctl restart apache2 # Debian/Ubuntu
使用浏览器访问http://sub.example.com,应能看到index.html,若无法访问,检查以下问题:
- 域名解析是否正确(可通过
nslookup验证)。 - Apache错误日志(
/var/log/httpd/error_log)是否有报错信息。 - 防火墙是否允许80和443端口(
sudo firewall-cmd --permanent --add-service={http,https})。
多二级域名配置扩展
若需配置多个二级域名(如blog.example.com、shop.example.com),重复上述步骤即可,为每个域名创建独立的目录和虚拟主机配置文件,为避免配置文件冗余,可使用模板批量生成,
# 创建模板文件
cat > /etc/httpd/conf.d/vhost_template.conf <<EOF
<VirtualHost *:80>
ServerName {DOMAIN}
DocumentRoot /var/www/{DOMAIN}/public_html
ErrorLog /var/log/httpd/{DOMAIN}_error.log
CustomLog /var/log/httpd/{DOMAIN}_access.log combined
</VirtualHost>
EOF
# 替换变量生成实际配置
sed 's/{DOMAIN}/blog.example.com/g' vhost_template.conf > /etc/httpd/conf.d/blog.example.com.conf常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 访问二级域名显示主域名内容 | 虚拟主机配置错误 | 检查ServerName是否与域名匹配,确保配置文件正确加载 |
| 403 Forbidden错误 | 目录权限不足 | 执行chmod 755设置目录权限,检查SELinux状态(sestatus) |
| SSL证书无效 | 证书未正确绑定 | 检查VirtualHost的443端口配置,验证证书路径 |
| 配置重启失败 | 语法错误 | 使用apachectl configtest检查语法,修正错误后重启 |
通过以上步骤,即可完成Apache二级域名的完整配置,合理的虚拟主机管理不仅能提升服务器资源利用率,还能为不同业务模块提供独立的运行环境,是企业级网站运维的重要技能,建议在实际操作前充分测试,并定期备份配置文件,以确保服务稳定性。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/26149.html
