加载中...

本文档整理了 Nginx在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景。
本文档整理了 Nginx 在日常运维与开发中最常用的操作命令,涵盖服务管理、配置验证、日志查看、进程控制等核心场景,适用于 CentOS、Ubuntu 等主流 Linux 发行版。
# 推荐:使用 systemd(现代 Linux 系统) sudo systemctl start nginx # 或直接调用二进制(不推荐用于生产) sudo nginx
💡 若提示
command not found,请先安装 Nginx:
sudo yum install nginx(CentOS)或sudo apt install nginx(Ubuntu)
# 方式一:systemd 停止(发送 TERM 信号) sudo systemctl stop nginx # 方式二:快速停止(强制终止,可能丢请求) sudo nginx -s stop # 方式三:优雅停止(处理完当前请求再退出,推荐) sudo nginx -s quit
⚠️ 生产环境建议使用
nginx -s quit或systemctl stop,避免用户请求中断ty-reference。
# 完全重启(先停后启,会短暂中断服务) sudo systemctl restart nginx # 重新加载配置(零停机,推荐!) sudo nginx -s reload # 或 sudo systemctl reload nginx
✅
reload是热更新配置的标准方式,不会断开现有连接ty-reference。
# 检查默认配置是否正确 sudo nginx -t # 检查指定配置文件 sudo nginx -t -c /etc/nginx/custom.conf # 显示完整生效配置(含 include 内容) sudo nginx -T
📌 最佳实践:修改配置后务必先执行
nginx -t,再reloadty-reference。
# 方法一:通过编译参数查找 nginx -V 2>&1 | grep -o '\--conf-path=[^ ]*' | cut -d= -f2 # 方法二:常见路径 /etc/nginx/nginx.conf # 主配置文件 /etc/nginx/sites-enabled/ # 虚拟主机(Debian系) /etc/nginx/conf.d/ # 额外配置片段
sudo systemctl status nginx
输出包含:
# 访问日志(记录 HTTP 请求) sudo tail -f /var/log/nginx/access.log # 错误日志(排查 502/404 等问题) sudo tail -f /var/log/nginx/error.log
🔍 日志路径可通过
nginx.conf中的access_log和error_log指令自定义。
# 清空访问日志 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 重新打开日志文件
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。
# 仅显示版本 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 ...
# 启用 sudo systemctl enable nginx # 禁用 sudo systemctl disable nginx
若知道主进程 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)
# 查看 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 |
nginx -tnginx -s reloadnginx -s quit(非 stop)logrotate + nginx -s reopenuser www-data; 在配置中📚 参考资料:
- Nginx 官方文档
- CSDN 技术社区多篇 Nginx 命令详解 ty-reference
✅ 本文档可直接保存为 nginx-cheatsheet.md,作为团队内部速查手册使用。