你想在部署了 kanyiyi.com 的 Nginx 服务器上,新增一个子域名 landing.kanyiyi.com,让它指向服务器上的 /var/www/index.html 文件,这个需求完全可以实现,我会一步步教你配置方法。

实现思路

核心是在 Nginx 中为子域名 landing.kanyiyi.com 配置独立的 server 块,指定其根目录和默认访问的 index.html 文件,同时确保 DNS 解析将子域名指向该服务器的 IP。

具体配置步骤

步骤 1:准备文件和目录(确保基础环境)

首先确认目标文件存在,若不存在可先创建测试文件:

# 创建目录(如果不存在)
mkdir -p /var/www/
# 创建测试用的 index.html(替换为你的实际登录页)
echo "<h1>Welcome to landing.kanyiyi.com</h1>" > /var/www/index.html
# 设置正确的权限(避免 Nginx 无权访问)
chmod 644 /var/www/index.html
chown www-data:www-data /var/www/index.html  # www-data 是 Nginx 默认运行用户

步骤 2:配置 Nginx 虚拟主机

Nginx 的配置文件通常放在 /etc/nginx/ 目录下,推荐为子域名创建独立配置文件(而非直接修改主配置),便于管理。

方式 1:创建独立配置文件(推荐)
  1. 新建子域名配置文件:

    vim /etc/nginx/conf.d/landing.kanyiyi.com.conf
  2. 写入以下配置内容(关键注释已标注):

    # 为子域名 landing.kanyiyi.com 配置独立的 server 块
    server {
     # 监听 80 端口(HTTP),处理 landing.kanyiyi.com 的请求
     listen 80;
     listen [::]:80;
    
     # 子域名域名(核心,匹配该域名的请求)
     server_name landing.kanyiyi.com;
    
     # 网站根目录(指向存放 index.html 的目录)
     root /var/www;
    
     # 默认索引文件(优先访问 index.html)
     index index.html;
    
     # 字符集配置(可选,避免中文乱码)
     charset utf-8;
    
     # 日志配置(可选,便于排查问题)
     access_log /var/log/nginx/landing.kanyiyi.com.access.log;
     error_log /var/log/nginx/landing.kanyiyi.com.error.log;
    
     # 精准匹配根路径 /,指向 index.html(确保直接访问域名时加载目标文件)
     location / {
         try_files $uri $uri/ /index.html;
         expires -1;  # 禁用缓存(登录页建议禁用,避免缓存旧内容)
     }
    
     # 防止访问隐藏文件(可选,安全优化)
     location ~ /\. {
         deny all;
         access_log off;
         log_not_found off;
     }
    }
方式 2:若主域名 kanyiyi.com 已有配置,可追加到主配置

如果 kanyiyi.com 的配置在 /etc/nginx/sites-available/kanyiyi.com(Debian/Ubuntu 系统)或 /etc/nginx/conf.d/kanyiyi.com.conf,可在同一文件中新增上述 server 块(两个 server 块并列即可)。

步骤 3:验证配置并重启 Nginx

  1. 检查配置语法是否错误(关键,避免重启失败):

    nginx -t

    若输出 nginx: configuration file /etc/nginx/nginx.conf test is successful 则说明配置正确。

  2. 重启 Nginx 使配置生效:

    # Debian/Ubuntu 系统
    systemctl restart nginx
    
    # CentOS/RHEL 系统
    systemctl restart nginx

步骤 4:配置 DNS 解析(关键)

需要在你的域名服务商(如阿里云、腾讯云、Cloudflare 等)后台,为 landing.kanyiyi.com 添加 A 记录(或 AAAA 记录,若用 IPv6),指向 Nginx 服务器的公网 IP。

  • 记录类型:A
  • 主机记录:landing
  • 记录值:你的服务器公网 IP
  • TTL:建议 5 分钟(快速生效)

步骤 5:测试访问

等待 DNS 解析生效(通常 5-10 分钟)后,在浏览器访问 http://landing.kanyiyi.com,应能看到 /var/www/index.html 的内容。

进阶补充(可选)

如果需要为子域名配置 HTTPS(推荐,登录页建议加密),可通过 Let's Encrypt 申请免费证书:

# 安装 certbot(以 Ubuntu 为例)
apt update && apt install certbot python3-certbot-nginx

# 为子域名申请证书并自动配置 Nginx
certbot --nginx -d landing.kanyiyi.com

执行后 certbot 会自动修改 Nginx 配置,添加 HTTPS 监听(443 端口)和证书路径。

总结

  1. 核心是为子域名创建独立的 Nginx server 块,通过 server_name 匹配子域名,root 指定文件目录,index 指向目标 index.html。
  2. 配置后需验证语法、重启 Nginx,并在域名服务商处配置子域名的 DNS 解析。
  3. 可选配置 HTTPS 提升安全性,certbot 可自动完成证书申请和配置。

如果配置后无法访问,可检查:① Nginx 日志(/var/log/nginx/landing.kanyiyi.com.error.log);② 服务器防火墙是否放行 80/443 端口;③ DNS 解析是否生效(可通过 ping landing.kanyiyi.com 验证)。

标签: none