在Apache服务器上实现单IP部署多域名HTTP服务,核心在于通过虚拟主机技术配置基于名称的虚拟主机。以下是关键配置参数与步骤:
核心配置参数****
1.
启用虚拟主机模块
在httpd.conf中取消注释以下指令以加载虚拟主机配置文件:
2.
3.
apache
4.
5.
| Include conf/extra/httpd-vhosts.conf |
|---|
6.
7.
定义虚拟主机监听规则
在httpd-vhosts.conf中,使用指令绑定IP和端口(推荐使用*通配符支持IPv4/IPv6):
8.
9.
apache
10.
11.
| <VirtualHost *:80> | |
|---|---|
| ServerName www.domain1.com | |
| DocumentRoot "/var/www/domain1" | |
| ErrorLog "logs/domain1-error.log" | |
| CustomLog "logs/domain1-access.log" common | |
| <VirtualHost *:80> | |
| ServerName www.domain2.com | |
| DocumentRoot "/var/www/domain2" | |
| ErrorLog "logs/domain2-error.log" | |
| CustomLog "logs/domain2-access.log" common | |
12.
13.
DNS解析与本地测试
14.
1. 确保域名A记录指向服务器IP
2. 本地测试时修改hosts文件添加域名映射:
3.
| 127.0.0.1 www.domain1.com | |
|---|---|
| 127.0.0.1 www.domain2.com |
4.
关键注意事项****
· 目录权限:确保DocumentRoot目录对Apache进程可读
· 日志分离:为每个虚拟主机配置独立日志文件便于故障排查
· 模块依赖:若需SSL支持,需额外加载mod_ssl模块并配置证书
· 配置验证:使用apachectl configtest检查语法,重启服务后通过浏览器访问域名验证
高级配置扩展****
· ServerAlias指令:允许域名别名匹配(如ServerAlias domain1.com)
· Directory块:可针对特定域名设置独立访问控制
· SSL多域名证书:通过SAN(Subject Alternative Name)实现单证书覆盖多域名
通过上述配置,Apache可在单IP下实现多域名HTTP服务,既节省IP资源又简化运维管理。