Nginx配置检查测试

Nginx配置检查测试

引言

改完Nginx配置直接reload最容易踩坑:语法错、证书路径错、端口被占会导致Nginx起不来甚至站点全挂。规范流程是先检查语法,通过后再平滑重载,出问题能快速回退。

语法检查

nginx -t

检查默认配置文件语法,输出syntax ok和test is successful才说明配置无误。

指定配置文件检查

nginx -t -c /etc/nginx/nginx.conf

自定义路径时用-c指定,避免检查错文件。

平滑重载

nginx -s reload

不中断现有连接重新加载配置,改动生效不宕机。

查看编译参数和版本

nginx -V

大写V看版本和编译模块,确认是否包含ssl、gzip、stream等模块。

打印生效配置

nginx -T

大写T会把所有include进来的配置打印出来,排查重复server或覆盖时用。

出错常见原因

  • 括号不配对、分号漏写;
  • 证书key路径不存在或权限600不对;
  • listen端口已被其他进程占用;
  • upstream后端地址写错;
  • include路径下的文件本身语法错。

注意事项

  • 永远先-t再reload,禁止跳过检查;
  • 改配置前备份原文件,出错可立刻回退;
  • -T输出很长,重定向到文件再查;
  • reload失败先看error.log定位行号;
  • 生产环境改完curl本机验证再放行;
  • 多台机器逐台灰度,不要一次全改。

总结

nginx -t检查语法,-c指定文件,-s reload平滑生效,-V看编译模块,-T打印完整配置。铁律是先检查通过再重载,改前备份、出错看error.log、本机curl验证后再上线,生产逐台灰度,避免一次改全量导致整站不可用。


emer 发布于  2026-10-19 07:39 

Linux查看CPU信息

Linux查看CPU信息

引言

服务器扩容、压测、排查性能瓶颈前,先要知道机器几颗CPU、多少核、主频和架构。/proc/cpuinfo是内核暴露的原生信息,配合lscpu、nproc能快速拿到规格,top/mpstat再看实时占用。

lscpu看汇总

lscpu

一次列出架构、颗数、每颗核数、线程数、主频、缓存,最简洁。

nproc看逻辑核数

nproc

直接输出可用逻辑CPU数,脚本里取核数最方便。

读/proc/cpuinfo

cat /proc/cpuinfo

每颗逻辑核一段,看model name型号、cpu MHz频率、flags指令集。

统计物理颗数和核数

# 物理CPU颗数
grep "physical id" /proc/cpuinfo | sort -u | wc -l
# 每颗物理核数
grep "cpu cores" /proc/cpuinfo | uniq
# 逻辑核总数
grep -c processor /proc/cpuinfo

物理颗数×每颗核数×超线程=逻辑核数。

实时CPU占用

top
mpstat 1

top看整体和进程,mpstat每秒采样看用户态、系统态、idle占比。

注意事项

  • 云主机看到的是分配的vCPU,不一定是物理独占;
  • 超线程逻辑核不等于物理性能翻倍;
  • flags里看是否支持虚拟化、AVX等指令集;
  • 排查高占用先top按P按CPU排序找进程;
  • 结合uptime看负载和核数是否匹配;
  • lscpu在大部分发行版预装,无此命令再读/proc。

总结

规格用lscpu看汇总、nproc取核数、/proc/cpuinfo读型号和指令集,配合grep统计物理颗数与核数,实时占用用top和mpstat。压测和扩容前先分清物理核、逻辑核和超线程,避免按vCPU误判真实算力。


emer 发布于  2026-10-19 07:32 

Linux查找大文件

Linux查找大文件

引言

服务器磁盘爆满时,df先看哪个分区满,再用du一层层往下钻,找到吃掉空间的大目录和大文件。很多人只会df -h,却定位不到具体是哪个文件,这里讲完整排查链路。

第一步看分区占用

df -h

看Use%和挂载点,确认是/、/data还是/var满,别在没满的分区里瞎找。

第二步定位大目录

du -sh /* 2>/dev/null | sort -rh | head

du -sh统计每个一级目录大小,sort -rh按大小倒序,head取前几名,快速锁定大头目录,再逐层深入:

du -sh /var/* 2>/dev/null | sort -rh | head

第三步找超过100M的单文件

find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

-size +100M表示大于100MB,2>/dev/null丢弃无权限报错,直接列出大文件路径和大小。

常见膨胀位置

  • /var/log:日志没轮转,单个日志几个G;
  • /tmp:临时文件没清理;
  • Docker:/var/lib/docker镜像和容器层堆积;
  • 网站上传目录、数据库binlog。

处理建议

  • 日志优先清空而不是删文件(> log.log),避免占用文件句柄不释放;
  • Docker用docker system prune清理悬空镜像;
  • 删之前确认文件没被进程占用,lsof | grep 文件名;
  • 不要直接rm正在写入的日志,用truncate -s 0截断。

注意事项

  • du统计含磁盘占用,find看文件真实大小,两者结合;
  • 根目录全盘find慢,先缩小到df定位的分区;
  • 系统目录(/usr、/lib)别乱删,只清理业务数据和日志。

总结

df -h定位满的分区,du -sh逐层排序找大目录,find -size找大文件,先看日志和Docker,清空用truncate别rm占用文件。按分区→目录→文件三层下钻,几分钟就能找到磁盘元凶。


emer 发布于  2026-10-19 07:18