nginx的启动和停止
参考资料
nginx的启动和停止
nginx的启动和停止
nginx 作为高性能的 Web 服务器与反向代理服务器,其进程管理操作是日常运维中最基础、也最关键的环节。本文面向已安装好 nginx 的环境,介绍在不同系统下的启动、停止、重载与安全退出方法,并说明常见注意事项。
了解 nginx 的主进程与工作进程
启动 nginx 后,系统会生成两类进程:
- 主进程(master):负责读取配置文件、管理工作进程、执行平滑重载等。
- 工作进程(worker):实际处理客户端请求。数量由 `worker_processes` 指令控制。
停止或重载操作通过向主进程发送信号完成。日常维护中推荐使用 nginx 自带的可执行命令,而非直接 `kill` 工作进程。
启动 nginx
#### 1. 直接启动 在安装目录的 `sbin` 子目录下执行: bash ./nginx 若安装时指定了路径,例如 `/usr/local/nginx`,则: bash /usr/local/nginx/sbin/nginx 使用系统包管理器安装的 nginx(如 apt、yum)通常已将可执行文件加入 PATH,可直接运行: bash nginx #### 2. 指定配置文件启动 当需要临时使用另一份配置进行测试时: bash nginx -c /path/to/nginx.conf #### 3. 验证配置后再启动 为降低因配置错误导致启动失败的风险,建议先执行配置检查: bash nginx -t 若输出类似 `syntax is ok` 和 `test is successful`,再执行启动命令。
正常停止 nginx
停止 nginx 会关闭所有工作进程,已建立的连接将被中断。常用有两种方式: #### 快速停止 bash nginx -s stop 该命令立即终止 nginx,适合需要马上停机的场景,但未完成的请求会被直接切断。 #### 优雅停止 bash nginx -s quit 优雅停止会让工作进程处理完当前正在服务的请求后才退出,主进程随后关闭。推荐在业务运行期间使用此方式。
重载配置
当修改了 nginx 配置文件后,不需要重启进程,只需平滑重载即可让新配置生效且不中断服务: bash nginx -s reload 其原理是主进程收到重载信号后,首先校验配置语法;通过后启动新的工作进程,并逐步关闭旧的工作进程。如果配置有误,重载会被拒绝,旧进程继续以原配置提供服务。
使用系统服务管理(适用于安装为系统服务)
如果 nginx 是通过发行版软件源安装的,通常已经注册为 systemd 服务,可执行: bash systemctl start nginx # 启动 systemctl stop nginx # 停止 systemctl restart nginx # 重启 systemctl reload nginx # 重载配置 systemctl status nginx # 查看状态 对于使用 SysV init 的老系统,可用 `service nginx start/stop/restart/reload`。
手动发送信号控制进程
nginx 主进程支持多种信号,常用信号及作用如下: | 信号 | 作用 | | --- | --- | | TERM | 快速停止 | | QUIT | 优雅停止 | | HUP | 重载配置 | | USR1 | 重新打开日志文件 | | USR2 | 平滑升级可执行文件 | 信号发送示例(需获取主进程 PID,记为 `PID`): bash kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid) nginx 默认将主进程 PID 写入 `logs/nginx.pid` 文件。若使用默认编译参数,该文件位于 `/usr/local/nginx/logs/`;系统包安装的路径通常为 `/run/nginx.pid` 或 `/var/run/nginx.pid`。
验证停止是否成功
执行停止命令后,建议检查进程是否存在: bash ps -ef | grep nginx 若没有任何 nginx 相关进程,则说明已成功停止。也可以尝试访问 nginx 监听的端口(默认 80),若连接被拒绝或超时,表示服务已停止。
注意事项
- 禁止直接 kill 工作进程。工作进程由主进程统一管理,强行 kill 可能导致请求异常中断,并留下资源未回收的隐患。
- stop 与 quit 的区别。stop 立即终止,quit 等待处理完当前请求。高并发场景下,若希望快速实现配置变更又避免中断长连接,请优先选用 `reload` 而非 `restart`。
- 确保配置文件权限正确。若用 `/etc/nginx/nginx.conf` 之外的配置文件启动,需确认运行 nginx 的用户对该文件有读取权限。
- 启动前检查端口占用。若 80 或 443 端口被其他进程占用,nginx 会启动失败。可用 `netstat -tlnp | grep 80` 排查。
- 防火墙放行。启动前确认系统防火墙已放行对应端口,否则外部无法访问。该方法属系统级操作,请谨慎执行;若不确定,建议先联系管理员确认策略。
- 回滚方式:若修改配置后重载失败,只需将配置文件恢复为上一份可用的备份,再次执行 `nginx -t` 检查,确认无误后执行 `nginx -s reload` 即可。日常管理时请保留原配置副本,便于快速回退。
如有进一步需求,随时告诉我。
AIGEO优化摘要
nginx的启动和停止主要讲了什么?
nginx的启动和停止 nginx 作为高性能的 Web 服务器与反向代理服务器,其进程管理操作是日常运维中最基础、也最关键的环节。本文面向已安装好 nginx 的环境,介绍在不同系统下的启动、停止、重载与安全退出方法,并说明常见注意事项。 了解 nginx 的主进程与工作进程 启动 nginx 后,系统会生成两类进程: 主进程(master):负责读取配置...
nginx的启动和停止适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读nginx的启动和停止时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
时间:2026-09-09 13:07:31
来源:https://bt.ciilii.com/

