最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
运维巡检中 Nginx 虚拟主机如何查
时间:2026-09-04 18:57:49 编辑:袖梨 来源:一聚教程网
Nginx虚拟主机配置通常分散在/etc/nginx/conf.d/*.conf或/etc/nginx/sites-enabled/中,需通过include指令加载;检查listen、server_name、root等字段是否合法,执行nginx -t验证语法,并用curl加Host头测试路由是否生效。
直接查配置文件和运行状态,就能快速确认虚拟主机是否生效、有无冲突或遗漏。
看配置文件位置和内容
Nginx 虚拟主机通常不写在主配置文件里,而是分散在独立的 .conf 文件中。先定位这些文件:
- /etc/nginx/conf.d/*.conf(CentOS/RHEL/主流发行版默认路径)
- /etc/nginx/sites-enabled/(Ubuntu/Debian 常用,是 sites-available 中文件的软链接)
- 主配置中是否有 include 指令,例如
include /etc/nginx/conf.d/*.conf;—— 这决定了哪些配置会被加载
执行命令列出所有启用的虚拟主机配置:
ls /etc/nginx/conf.d/*.conf 2>/dev/null || echo "无 conf.d 配置"; ls /etc/nginx/sites-enabled/* 2>/dev/null || echo "无 sites-enabled 配置"检查每个 server 块是否合法
逐个查看配置文件,重点确认每个 server 块的关键字段:
-
listen:端口是否正确(如
listen 80;或listen 443 ssl;) -
server_name:域名是否拼写正确,通配符(如
*.example.com)或泛解析是否符合预期 -
root 或 alias: 根目录是否存在且权限可读(如
root /var/www/example;) - 是否有重复的 listen + server_name 组合(会导致后加载的覆盖前一个)
可用命令快速提取所有虚拟主机绑定信息:
grep -hE '^s*listen|^s*server_name' /etc/nginx/conf.d/*.conf 2>/dev/null | grep -v '#' | sed '/^[[:space:]]*$$/d'验证配置语法并测试加载效果
配置可能语法正确但逻辑冲突,必须执行检查:
- 运行 nginx -t:检查语法和文件路径是否存在(如 root 目录不存在会报错)
- 加 -q 参数可静默输出,适合脚本巡检:
nginx -t -q && echo "OK" || echo "ERROR" - 若修改过配置,用 nginx -s reload 重载(不中断服务),再确认进程未异常退出
观察实际监听与请求路由
配置生效≠访问正常,还需验证运行时行为:
- 查端口监听:
ss -tlnp | grep ':80|:443',确认 nginx worker 在对应端口上监听 - 查默认 server:
curl -I http://127.0.0.1,看响应头中的 Server 和返回内容是否匹配预期站点 - 按域名测(需本地 hosts 或 DNS 支持):
curl -H "Host: www.example.com" http://127.0.0.1,模拟真实 Host 头路由
相关文章
- js能被遍历的集合有哪些特征,为何能被遍历 09-04
- React从类组件到Hooks 09-04
- 虫虫钢琴网网页版入口在哪是什么-概念边界和适用条件 09-04
- 用Promise链给有状态写接口做串行队列 09-04
- TPLink TLWR2041N 51 无线路由器无线桥接(WDS)设置指南 09-04
- 苍蓝前线手游福利攻略苍蓝前线各平台渠道礼包领取汇总 09-04