要实现 Apache 服务器通过域名访问,需完成域名解析、虚拟主机配置及服务重启等步骤,以下是具体操作流程及注意事项,帮助您顺利完成域名绑定。

域名解析配置
在绑定域名前,需先将域名指向服务器的 IP 地址,这一过程通过 DNS 解析实现。
- 登录域名管理控制台:在您的域名注册商平台(如阿里云、腾讯云、GoDaddy 等)进入 DNS 管理界面。
- 添加 A 记录:
- 类型选择
A(记录指向 IPv4 地址); - 主机记录填写您的域名前缀(如
www或 , 表示根域名); - 记录值填写服务器的公网 IP 地址(如
168.1.100); - TTL(生存时间)可默认为
600秒(10 分钟,数值越小修改生效越快)。
- 类型选择
- 验证解析生效:使用
ping命令检查域名是否指向正确 IP(如ping www.yourdomain.com),若显示服务器 IP 则解析成功(通常需 5-15 分钟生效)。
示例:若域名为 example.com,需添加两条 A 记录:
| 主机记录 | 记录类型 | 记录值 | TTL |
|———-|———-|——–|——|
| @ | A | 192.168.1.100 | 600 |
| www | A | 192.168.1.100 | 600 |
Apache 虚拟主机配置
虚拟主机允许一台服务器托管多个独立网站,通过域名区分访问,Apache 支持 IP、端口和域名三种虚拟主机类型,此处重点介绍域名型虚拟主机(最常用)。
确认 Apache 已启用虚拟主机模块
默认情况下,Apache 可能未加载 vhost_alias_module 或 httpd-vhosts.conf 配置文件,需检查并启用:
- 以 Linux 系统为例,编辑主配置文件
httpd.conf(通常位于/etc/httpd/conf/或/etc/apache2/):vim /etc/httpd/conf/httpd.conf
- 确保包含以下配置(取消注释):
LoadModule vhost_alias_module modules/mod_vhost_alias.so Include conf/extra/httpd-vhosts.conf # 虚拟主机配置文件路径
- 保存后重启 Apache 服务:
systemctl restart httpd # CentOS/RedHat systemctl restart apache2 # Debian/Ubuntu
编辑虚拟主机配置文件
打开 httpd-vhosts.conf(路径与上述一致),添加以下配置:
<VirtualHost *:80> # 监听 80 端口(HTTP)
ServerName www.example.com # 绑定域名(带 www)
ServerAlias example.com # 绑定根域名(可选)
DocumentRoot "/var/www/example.com" # 网站根目录
ErrorLog "/var/log/httpd/example.com_error.log" # 错误日志路径
CustomLog "/var/log/httpd/example.com_access.log" combined # 访问日志路径
<Directory "/var/www/example.com">
Options Indexes FollowSymLinks # 允许目录列表和符号链接
AllowOverride All # 允许 .htaccess 覆盖配置
Require all granted # 允许所有 IP 访问
</Directory>
</VirtualHost>参数说明:

ServerName:必须与解析的域名完全一致(区分大小写);DocumentRoot:确保目录存在且权限正确(建议设置755,文件644);<Directory>:用于限制目录访问权限,AllowOverride All支持 URL 重写等功能。
配置多个域名
若需绑定多个域名(如 example.com 和 test.com),重复添加 <VirtualHost> 块,注意区分 ServerName 和 DocumentRoot:
<VirtualHost *:80>
ServerName test.com
DocumentRoot "/var/www/test.com"
<Directory "/var/www/test.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>创建网站根目录并上传文件
- 创建目录:根据
DocumentRoot配置创建目录,并设置权限:mkdir -p /var/www/example.com chown -R apache:apache /var/www/example.com # 设置所有者为 Apache 用户 chmod -R 755 /var/www/example.com
- 上传测试文件:在根目录下创建
index.html如下:<!DOCTYPE html> <html> <head> <title>example.com</title> </head> <body> <h1>Welcome to example.com!</h1> </body> </html>
配置 HTTPS(可选但推荐)
现代网站需启用 HTTPS 以保障安全,需通过 SSL 证书实现。
安装 SSL 模块
# CentOS/RedHat yum install mod_ssl # Debian/Ubuntu apt install libapache2-mod-ssl
申请 SSL 证书
可选择免费证书(如 Let’s Encrypt)或付费证书,以 Let’s Encrypt 为例:
# 安装 Certbot yum install certbot python3-certbot-apache # CentOS apt install certbot python3-certbot-apache # Ubuntu # 申请证书(自动配置 Apache) certbot --apache -d example.com -d www.example.com
按提示完成邮箱验证和证书安装,Certbot 会自动修改虚拟主机配置,添加 443 端口监听和 SSL 配置。
手动配置 HTTPS(若 Certbot 未自动完成)
编辑 httpd-vhosts.conf,在虚拟主机中添加 SSL 配置:
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot "/var/www/example.com"
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory "/var/www/example.com">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>重启服务并测试
- 重启 Apache:
systemctl restart httpd
- 访问测试:
- 在浏览器输入
http://www.example.com,应显示测试页面; - 若配置了 HTTPS,输入
https://www.example.com,浏览器显示安全锁表示成功; - 检查错误日志(
/var/log/httpd/example.com_error.log)排查问题(如权限不足、域名拼写错误等)。
- 在浏览器输入
常见问题排查
无法访问域名:

- 检查 DNS 解析是否生效(
ping命令); - 确认防火墙允许 80(HTTP)和 443(HTTPS)端口:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
- 检查 Apache 是否监听正确端口:
netstat -tuln | grep :80。
- 检查 DNS 解析是否生效(
显示默认页面:
- 检查
ServerName是否与解析域名一致; - 确认
DocumentRoot路径是否存在且正确。
- 检查
权限问题:
- 确保网站目录所有者为
apache用户,权限为755; - 文件权限为
644,目录为755。
- 确保网站目录所有者为
通过以上步骤,即可完成 Apache 服务器的域名绑定,若需更高级配置(如子域名、反向代理等),可进一步调整虚拟主机参数或结合其他模块实现。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/30447.html
