Apache基于域名的虚拟主机配置是一种在同一台服务器上托管多个域名,并通过域名区分不同网站内容的技术,这种配置方式能够充分利用服务器资源,降低运维成本,是网站管理中常用的解决方案,以下是详细的配置步骤和注意事项。

准备工作
在配置虚拟主机前,需要确保已完成以下准备工作:
- 安装Apache服务:通过包管理器(如yum或apt)安装Apache,并确保服务正常运行。
- 域名解析:将需要配置的域名解析到服务器的公网IP地址。
- 网站目录准备:为每个域名创建独立的网站根目录,并存放对应的网站文件。
/var/www/example1.com和/var/www/example2.com。
配置虚拟主机
Apache的虚拟主机配置通常位于/etc/apache2/sites-available/(基于Debian/Ubuntu系统)或/etc/httpd/conf.d/(基于CentOS/RHEL系统)目录下,以下是具体步骤:
创建虚拟主机配置文件
以Ubuntu系统为例,创建新的配置文件,如example1.com.conf:
<VirtualHost *:80>
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/example1.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ServerName:主域名。ServerAlias:附加域名(可选)。DocumentRoot:网站根目录路径。ErrorLog和CustomLog:错误日志和访问日志路径。
启用虚拟主机配置
在Ubuntu系统中,使用a2ensite命令启用配置文件:

sudo a2ensite example1.com.conf
在CentOS系统中,直接将配置文件放入/etc/httpd/conf.d/目录即可,无需额外命令。
重启Apache服务
保存配置后,重启Apache服务使配置生效:
sudo systemctl restart apache2 # Ubuntu系统 sudo systemctl restart httpd # CentOS系统
多域名配置示例
若需配置多个域名,重复上述步骤创建不同的配置文件,以下是一个多域名配置的对比示例:
| 域名 | 网站根目录 | 配置文件名 |
|---|---|---|
| example1.com | /var/www/example1.com | example1.com.conf |
| example2.com | /var/www/example2.com | example2.com.conf |
每个域名的DocumentRoot和ServerName需保持唯一,避免冲突。

注意事项
- 权限设置:确保网站目录的权限正确,
sudo chown -R www-data:www-data /var/www/example1.com sudo chmod -R 755 /var/www/example1.com
- HTTPS配置:若需启用HTTPS,需安装SSL证书并修改监听端口为443,配置示例如下:
<VirtualHost *:443> ServerName example1.com DocumentRoot /var/www/example1.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem </VirtualHost> - 测试配置:修改前可通过
sudo apache2ctl configtest(Ubuntu)或sudo apachectl configtest(CentOS)检查配置语法是否正确。 - 防火墙设置:确保服务器的防火墙允许80(HTTP)和443(HTTPS)端口访问。
基于域名的虚拟主机配置是Apache服务器的核心功能之一,通过合理规划和配置,可实现多站点的高效管理,在实际操作中,需注意域名解析、目录权限、日志记录等细节,确保网站稳定运行,对于生产环境,建议结合SSL证书实现HTTPS加密,提升网站安全性。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/41912.html

