配置二级域名和配置init是服务器管理中两项最常踩坑的操作:二级域名配置记住“先改DNS解析,再改Web服务器”,init配置则要分清系统是用systemd还是init.d。 这篇把两条线索都拆开讲,并介绍它们在服务器初始化时的配合方式。
服务器怎么配置二级域名?先解析后站点,两步到位
配置二级域名并不复杂,核心只有两个动作:让域名解析到服务器IP,再让Web服务器认领这个域名,整个过程大概需要五到十分钟,下面按步骤来。
第一步:在DNS服务商里添加一条A记录
假设你已经有一个主域名 example.com,服务器公网IP是 2.3.4,想建一个 blog.example.com 二级域名,登录你的域名DNS控制台,比如简米云、酷番云或Cloudflare,在解析设置中点击“添加记录”:
- 记录类型:选择
A(或AAAA对应IPv6) - 主机记录:填二级域名前缀,
blog,注意不要带主域名 - 记录值:填服务器IP,
2.3.4 - TTL:默认
600秒即可,不需要改小
保存后,解析不是立刻生效的,TTL是缓存时间,最短从几十秒到几小时都有,业内专家指出,如果想让新机器快速生效,可以把TTL临时改到 60 秒,等解析稳定后再调回默认值。
第二步:配置Nginx虚拟主机,让二级域名生效
解析只负责把域名引到服务器上,真正决定访问什么内容的是Web服务器,以最常见的Nginx为例,在 /etc/nginx/conf.d/ 里新建一个 blog.conf 文件,写入:
server {
listen 80;
server_name blog.example.com;
root /var/www/blog;
index index.html;
}
然后执行:
nginx -t systemctl reload nginx
nginx -t 检查语法,reload 热重载不中断服务,这时把HTML文件丢到 /var/www/blog 目录,访问 blog.example.com 就能看到内容了。
第三步:如果你用的是Apache,配置写法略有不同
Apache的虚拟主机配置在 /etc/httpd/conf.d/ 或 /etc/apache2/sites-available/ 下,核心写法是:
<VirtualHost :80>
ServerName blog.example.com
DocumentRoot /var/www/blog
</VirtualHost>
配置完需要启用站点(Debian系用 a2ensite blog.conf),systemctl reload httpd,注意Apache要确保 mod_vhost_alias 相关模块已开启,否则可能报404。
第四步:绑定多个二级域名时的通配符技巧
如果业务需要 a.example.com、b.example.com 走同一套服务,可以在DNS里加一条泛解析记录,主机记录填 ,Nginx这边用 server_name .example.com; 接收任意二级域名,不过泛解析会覆盖所有子域名,如果个别子域名要单独处理,精准优先,泛解析兜底,顺序放后面。
验证二级域名是否真正生效
别急着完事,用两条命令验证:
dig blog.example.com:确认解析结果指向服务器IPcurl -H "Host: blog.example.com" http://1.2.3.4:绕开本地DNS缓存,直接测试Web服务器响应
如果dig看到IP已经对,但curl返回不对,问题多半在Nginx的 server_name 没有匹配上,或者防火墙没放行80端口。
怎么配置init?搞懂init.d和systemd,你就抓住了开机的钥匙
init是Linux系统启动的第一个进程,它决定了开机后自动拉起哪些服务,很多初学服务器的朋友一看到“配置init”就发怵,其实分两步走就能摸清门路。
先看你的服务器是哪种init体系
不同版本的Linux,init配置方式完全不同,执行一下:
ps -p 1 -o comm=
输出 systemd,说明用的是新版;输出 init 或 sysvinit,说明是旧版,CentOS 7及以上、Debian 8以上、Ubuntu 15.04以上基本都是 systemd,CentOS 6和更早的Debian则使用 SysV init。
怎么配置init脚本:SysV init的经典写法
在CentOS 6等旧系统中,服务脚本放在 /etc/init.d/ 下,假设我们有个程序,启动命令是 /opt/myservice/start.sh
,要创建一个名为 myservice 的init脚本:
vi /etc/init.d/myservice
写入如下结构(简化版):
#!/bin/bash
# chkconfig: 2345 90 10
# description: myservice description
case "$1" in
start) echo "Starting myservice"; /opt/myservice/start.sh;;
stop) echo "Stopping myservice"; pkill -f myservice;;
restart) $0 stop; $0 start;;
) echo "Usage: $0 {start|stop|restart}";;
esac
然后给执行权限并注册开机自启:
chmod +x /etc/init.d/myservice chkconfig --add myservice chkconfig myservice on
之后可以用 service myservice start 手动启动,重启后也会自动运行。
systemd服务的配置写法示例
现代服务器的init配置,更像是在写一份服务说明书,在 /etc/systemd/system/ 下建 myservice.service:
[Unit] Description=My Custom Service After=network.target [Service] Type=simple ExecStart=/opt/myservice/start.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
保存后执行:
systemctl daemon-reload systemctl enable --now myservice
enable 设置开机自启,--now 立即启动,后面要查状态就 systemctl status myservice,看日志用 journalctl -u myservice。
init脚本的安全注意
写init脚本时,建议在脚本开头加 set -e,遇到异常退出码就直接中止,避免服务明明失败了还报成功,另外要防重复启动,可以用PID文件判断当前是否在运行,SysV init脚本的退出码规范:0 表示成功,非零表示失败,这在自动化部署时会被其他工具读取。
检查init配置是否生效
配置完不一定立刻生效,建议重启一次验证,重启后执行 systemctl status myservice 看服务是否处于 active (running) 状态,如果没起来,用 journalctl -u myservice 看日志,最常见的坑是脚本没有执行权限或路径写错。
二级域名和init配置在服务器初始化时的协同场景
这两件事看着独立,实际在服务器交付时经常一起出现,尤其是做自动化部署、批量开新机时,科学配置能让后续维护省心不少。
用init脚本在首次启动时自动绑定二级域名
很多云服务器的初始配置过程是这样的:安装Nginx,然后把二级域名对应的配置文件写入 /etc/nginx/conf.d/,再reload,这个过程完全可以写成一个init脚本,放在 /etc/rc.d/init.d/ 或做成systemd服务,让它在服务器首次启动时自动执行,这样新机器从创建到上线,不需要人工挨个敲命令。
用systemd守护证书续期和解析刷新任务
二级域名配置了HTTPS后,Let’s Encrypt证书每90天要续一次,与其手动跑,不如用systemd timer或init脚本定时执行,例如写一个 renew-cert.timer,每天凌晨触发证书续期,续完自动reload Nginx,这类任务用systemd管理,日志统一走journald,排查问题方便得多。
常见问题:服务器怎么配置二级域名和init的坑点
服务器怎么配置二级域名时,解析总是不生效,怎么排查?
先确认DNS控制台里的记录类型和记录值有没有写错,再在服务器上执行 dig blog.example.com,如果结果不是你想要的,尝试换个公共DNS,nslookup blog.example.com 8.8.8.8,如果解析没问题但访问就是失败,检查Web服务器的 server_name 是否和你配置的二级域名完全一致,注意不要漏掉末尾的点或大小写。
怎么配置init让服务在断电重启后自动恢复?
用systemd时,只要执行 systemctl enable myservice,服务就会随系统启动,但要注意在service文件中写清依赖,通常在 [Unit] 段加 After=network.target,避免服务在网络还没就绪时启动失败,另外在 [Service] 段加 Restart=always,这样即使进程意外退出,systemd也会自动拉起。
二级域名配置和init配置都是服务器运维的基础功,把DNS解析、Nginx虚拟主机、systemd服务这三样吃透,绝大多数场景都能轻松应对,每次改完配置,花一分钟做验证,比事后排查要省力得多。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/585835.html




