核心概念

在开始之前,我们先理解三个关键角色,这有助于你明白整个流程:

vps绑定域名图文教程
(图片来源网络,侵删)
  1. 域名:你网站的地址,google.combaidu.com,它相当于你家的门牌号
  2. VPS (Virtual Private Server):一台虚拟服务器,是你网站存放的地方,它相当于你家的房子
  3. DNS (Domain Name System):域名系统,是互联网的“电话簿”,它的作用是将域名(如 google.com)解析到服务器的IP地址上,它相当于把门牌号和你家的地址(IP地址)关联起来的系统

绑定域名的核心步骤就是: 告诉DNS系统,当有人访问我的域名时,请把他引导到我VPS的IP地址上。


准备工作

在开始之前,请确保你已经准备好以下东西:

  1. 一台已经搭建好的VPS:并且知道它的公网IP地址,你可以在VPS服务商的控制面板里找到它。
  2. 一个已经注册好的域名:并且你拥有该域名的管理权限(通常能登录域名注册商的后台)。
  3. VPS的登录信息:包括IP地址、用户名(如 root)和密码,或者SSH密钥。
  4. 网站文件:你的网站代码、图片等文件,已经上传到VPS的指定目录(/var/www/html/usr/share/nginx/html)。

第一步:在域名服务商处修改DNS记录

这是最关键的一步,目的是让域名指向你的VPS。

登录你的域名管理后台

vps绑定域名图文教程
(图片来源网络,侵删)

打开你购买域名的服务商网站(如 GoDaddy, Namecheap, 阿里云, 腾讯云等),登录你的账户,找到“域名管理”或“产品管理”区域。

找到DNS管理/解析设置

在你的域名列表中,找到你想要绑定的那个域名,点击进入管理页面,然后寻找类似以下名称的选项:

  • DNS Management
  • DNS Settings
  • 域名解析
  • 解析设置

添加A记录

vps绑定域名图文教程
(图片来源网络,侵删)

A记录是域名解析中最基础的记录,它将一个域名指向一个IP地址。

  • 记录类型:选择 A
  • 主机记录/主机名
    • 如果你只想绑定 www.example.com,这里就填写 www
    • 如果你希望直接访问 example.com 也指向你的VPS,你还需要添加一条记录,这里留空(或填写 ,代表根域名)。
  • 记录值/指向填写你的VPS公网IP地址
  • TTL:保持默认值即可(如 Automatic, 1 Hour)。

示例图:

假设你的VPS IP是 45.67.89,你想绑定 www.mydomain.commydomain.com,你需要添加两条A记录:

记录类型 主机记录 记录值
A www 45.67.89
A 45.67.89

保存更改

保存设置后,DNS更改并不会立即生效,全球DNS的刷新时间(TTL)可能需要几分钟到48小时不等,通常情况下,几分钟内就会生效,你可以使用一些在线工具(如 DNSChecker.org)来检查你的域名是否已经解析到正确的IP。


第二步:在VPS上配置Web服务器

当DNS生效后,访问你的域名,请求就会到达你的VPS,你需要告诉VPS的Web服务器(Nginx或Apache)如何处理这个域名的请求。

情况A:如果你的VPS使用的是 Nginx

Nginx以其高性能和简洁的配置文件而闻名。

连接到你的VPS

使用SSH工具(如 PuTTY, MobaXterm, 或Windows自带的终端)连接到你的VPS。

ssh root@你的VPS_IP地址

创建站点配置文件

Nginx的站点配置通常存放在 /etc/nginx/sites-available/ 目录下,我们可以创建一个新的配置文件,mydomain.com

nano /etc/nginx/sites-available/mydomain.com

编写配置内容

在打开的编辑器中,粘贴以下内容。请务必将 server_nameroot 路径修改成你自己的信息。

# 监听 80 端口,这是HTTP的默认端口
server {
    listen 80;
    # 替换成你的域名,可以写多个,用空格隔开
    server_name www.mydomain.com mydomain.com;
    # 网站根目录,替换成你存放网站文件的实际路径
    root /var/www/html;
    # 访问日志和错误日志路径(可选,但推荐)
    access_log /var/log/nginx/mydomain.com.access.log;
    error_log /var/log/nginx/mydomain.com.error.log;
    # 默认首页文件
    index index.html index.htm index.php;
    # 将所有请求都指向 root 目录下的文件
    location / {
        try_files $uri $uri/ =404;
    }
}

创建符号链接以启用站点

sites-available 目录存放所有可用的站点配置,但 sites-enabled 目录存放的是正在运行的配置,我们通过创建一个符号链接来启用它。

# ln -s 源文件 目标链接
ln -s /etc/nginx/sites-available/mydomain.com /etc/nginx/sites-enabled/

测试并重启Nginx

在重启Nginx之前,最好先测试一下配置文件是否有语法错误。

nginx -t

如果看到 syntax is oktest is successful 的提示,说明配置正确,现在可以重启Nginx使配置生效。

# 对于使用systemd的系统(如Ubuntu 16.04+, Debian 8+, CentOS 7+)
systemctl restart nginx

检查防火墙

确保你的VPS防火墙(如 ufwfirewalld)允许80端口的流量。

# 对于 UFW
ufw allow 'Nginx Full'
# 对于 Firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

情况B:如果你的VPS使用的是 Apache

Apache是另一个非常流行的Web服务器。

连接到你的VPS

同样,使用SSH工具连接到你的VPS。

ssh root@你的VPS_IP地址

创建站点配置文件

Apache的站点配置文件通常在 /etc/apache2/sites-available/ 目录下,创建一个新文件 mydomain.com.conf

nano /etc/apache2/sites-available/mydomain.com.conf

编写配置内容修改 ServerNameDocumentRoot

<VirtualHost *:80>
    # 替换成你的域名
    ServerName www.mydomain.com
    ServerAlias mydomain.com # 设置别名,让 mydomain.com 也指向这个站点
    # 网站根目录,替换成你存放网站文件的实际路径
    DocumentRoot /var/www/html
    # 目录权限设置
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    # 访问日志和错误日志路径(可选)
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用站点和模块

使用 a2ensite 命令来启用这个站点配置。

a2ensite mydomain.com.conf

为了支持 .htaccess 文件(常用于WordPress等程序),确保 rewrite 模块已启用。

a2enmod rewrite

测试并重启Apache

测试配置文件是否有语法错误。

apache2ctl configtest

如果看到 Syntax OK,说明配置正确,然后重启Apache。

systemctl restart apache2

检查防火墙

确保防火墙允许80端口的流量。

# 对于 UFW
ufw allow 'Apache Full'
# 对于 Firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

第三步:验证结果

完成以上所有步骤后,等待几分钟(让DNS完全生效),然后打开你的浏览器,分别访问:

  • http://www.mydomain.com
  • http://mydomain.com

如果两个地址都能正确显示你VPS上的网站内容,那么恭喜你,VPS绑定域名已经成功!

常见问题

  • Q: 访问域名显示 "Welcome to Nginx!" 或 "Apache2 Debian Default Page"?

    • A: 这说明你的域名已经解析到了VPS,但VPS上的Web服务器还在使用默认的配置文件,请检查你的新配置文件是否正确创建,并且符号链接是否正确建立,确保重启了Web服务器。
  • Q: 访问域名显示 "403 Forbidden"?

    • A: 这通常是权限问题,请检查网站文件所在的目录(如 /var/www/html)及其内部文件的所有者权限
    • Nginx: 默认用户可能是 www-data,你需要将网站目录的所有者改为这个用户。
      chown -R www-data:www-data /var/www/html
    • Apache: 同样,将所有者改为 www-data
      chown -R www-data:www-data /var/www/html
  • Q: 访问域名显示 "无法访问此网站" 或 "This site can't be reached"?

    • A1: DNS尚未生效,请耐心等待,或使用DNS检查工具确认你的域名是否已解析到正确的VPS IP。
    • A2: VPS防火墙阻止了80端口,请检查并放行80端口的入站规则。
    • A3: Web服务器没有运行,请检查其状态:systemctl status nginxsystemctl status apache2
  • Q: 我想使用HTTPS(让域名显示为绿色小锁)?

    • A: 在完成以上HTTP配置后,你需要为你的域名申请并安装SSL证书,最简单的方法是使用 Let's Encrypt,它提供免费的SSL证书,你可以使用 Certbot 工具一键自动完成证书的申请和配置,这通常是Nginx或Apache配置后的下一步。

希望这份详细的图文教程能帮助你顺利完成VPS域名的绑定!如果在任何步骤遇到困难,欢迎提问。