Apache(httpd)域名绑定配置指南
核心配置文件路径
文件路径 | 说明 |
---|---|
/etc/httpd/conf/httpd.conf |
主配置文件(CentOS/RHEL) |
/etc/apache2/apache2.conf |
主配置文件(Ubuntu/Debian) |
/etc/httpd/conf.d/ |
虚拟主机配置文件存放目录 |
/etc/apache2/sites-available/ |
虚拟主机配置文件存放目录(Ubuntu) |
基础虚拟主机配置示例
编辑主配置文件或创建独立虚拟主机文件:
<VirtualHost :80>
ServerAdmin webmaster@example.com
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example
ErrorLog /var/log/httpd/example-error.log
CustomLog /var/log/httpd/example-access.log combined
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
多域名绑定方案
类型 | 配置特点 | 适用场景 |
---|---|---|
基于IP的虚拟主机 | 每个站点对应不同IP | 多IP服务器环境 |
基于端口的虚拟主机 | 同一IP不同端口(如80/443) | 需区分端口访问 |
基于名称的虚拟主机 | 同一IP+端口,靠Host头区分 | 最常用方案(推荐) |
SSL证书配置(扩展)
在虚拟主机配置中添加:
<VirtualHost :443> SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem # 其他配置与HTTP虚拟主机保持一致 </VirtualHost>
配置验证与排错
- 语法检查:
apachectl configtest
- 查看错误日志:
tail -f /var/log/httpd/error_log
- 防火墙放行:
firewall-cmd --permanous --add-service=http
- SELinux设置(CentOS):
setsebool -P httpd_can_network_connect on
动态域名绑定(高级)
通过.htaccess
实现动态子域名:
<VirtualHost :80> UseCanonicalName Off ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost>
配合应用层路由(如Nginx+Lua或后端程序)实现动态解析。
相关问题与解答
Q1:如何测试域名绑定是否成功?
A1:
<VirtualHost :443>
ServerName site1.com
SSLCertificateFile /certs/site1.crt
SSLCertificateKeyFile /certs/site1.key
DocumentRoot /web/site1
</VirtualHost>
<VirtualHost :443>
ServerName site2.com
SSLCertificateFile /certs/site2.crt
SSLCertificateKeyFile /certs/site2.key
DocumentRoot /web/site2
</VirtualHost