Nginx速查

发布时间: 2025年12月4日 00:45

本文档整理了 Nginx*在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景。

Nginx 常用命令速查手册

本文档整理了 Nginx 在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景,适用于 CentOS、Ubuntu 等主流 Linux 发行版。


一、服务生命周期管理

1. 启动 Nginx

# 推荐:使用 systemd(现代 Linux 系统) sudo systemctl start nginx # 或直接调用二进制(不推荐用于生产) sudo nginx

💡 若提示 command not found,请先安装 Nginx:
sudo yum install nginx(CentOS)或 sudo apt install nginx(Ubuntu)


2. 停止 Nginx

# 方式一:systemd 停止(发送 TERM 信号) sudo systemctl stop nginx # 方式二:快速停止(强制终止,可能丢请求) sudo nginx -s stop # 方式三:优雅停止(处理完当前请求再退出,推荐) sudo nginx -s quit

⚠️ 生产环境建议使用 nginx -s quitsystemctl stop,避免用户请求中断ty-reference


3. 重启与重载配置

# 完全重启(先停后启,会短暂中断服务) sudo systemctl restart nginx # 重新加载配置(零停机,推荐!) sudo nginx -s reload # 或 sudo systemctl reload nginx

reload 是热更新配置的标准方式,不会断开现有连接ty-reference


二、配置文件管理

1. 测试配置语法

# 检查默认配置是否正确 sudo nginx -t # 检查指定配置文件 sudo nginx -t -c /etc/nginx/custom.conf # 显示完整生效配置(含 include 内容) sudo nginx -T

📌 最佳实践:修改配置后务必先执行 nginx -t,再 reloadty-reference


2. 查看配置文件位置

# 方法一:通过编译参数查找 nginx -V 2>&1 | grep -o '\--conf-path=[^ ]*' | cut -d= -f2 # 方法二:常见路径 /etc/nginx/nginx.conf # 主配置文件 /etc/nginx/sites-enabled/ # 虚拟主机(Debian系) /etc/nginx/conf.d/ # 额外配置片段

三、状态与日志监控

1. 查看服务状态

sudo systemctl status nginx

输出包含:

  • 是否运行中(Active: active (running))
  • 主进程 PID
  • 最近日志片段

2. 实时查看日志

# 访问日志(记录 HTTP 请求) sudo tail -f /var/log/nginx/access.log # 错误日志(排查 502/404 等问题) sudo tail -f /var/log/nginx/error.log

🔍 日志路径可通过 nginx.conf 中的 access_logerror_log 指令自定义。


3. 清空日志(不停服务)

# 清空访问日志 sudo truncate -s 0 /var/log/nginx/access.log # 或配合 logrotate 手动切割 sudo mv /var/log/nginx/access.log /var/log/nginx/access.log.$(date +%Y%m%d) sudo nginx -s reopen # 通知 Nginx 重新打开日志文件

四、进程与版本信息

1. 查看 Nginx 进程

ps aux | grep nginx

典型输出:

root     1234  0.0  0.1 ... nginx: master process
www-data 5678  0.0  0.2 ... nginx: worker process

🧠 Nginx 采用 Master-Worker 架构:主进程管理,工作进程处理请求ty-reference


2. 查看版本与编译信息

# 仅显示版本 nginx -v # 显示版本 + 编译参数(含模块列表) nginx -V

示例输出:

nginx version: nginx/1.24.0
built with OpenSSL 3.0.2 ...
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx ... --with-http_ssl_module ...

五、高级操作

1. 开机自启动

# 启用 sudo systemctl enable nginx # 禁用 sudo systemctl disable nginx

2. 信号控制(底层方式)

若知道主进程 PID(通常在 /run/nginx.pid):

# 重新加载配置(等效于 -s reload) kill -HUP $(cat /run/nginx.pid) # 优雅停止(等效于 -s quit) kill -QUIT $(cat /run/nginx.pid) # 重新打开日志(用于日志轮转) kill -USR1 $(cat /run/nginx.pid)

3. 端口占用排查

# 查看 80 端口占用 sudo ss -tulpn | grep ':80' # 或 sudo lsof -i :80

若端口被占用,可停止冲突进程或修改 Nginx 的 listen 端口。


六、常见问题速查

问题解决命令
修改配置后不生效?nginx -t && nginx -s reload
出现 502 Bad Gateway?tail -f /var/log/nginx/error.log
无法启动,提示 address already in use?sudo fuser -k 80/tcp
忘记配置文件在哪?nginx -V 2>&1 | grep conf-path

七、最佳实践总结

  1. 修改配置前必做nginx -t
  2. 更新配置后必做nginx -s reload
  3. 生产环境停止用nginx -s quit(非 stop
  4. 日志定期轮转:配合 logrotate + nginx -s reopen
  5. 不要用 root 运行:确保 user www-data; 在配置中

📚 参考资料:


✅ 本文档可直接保存为 nginx-cheatsheet.md,作为团队内部速查手册使用。