如何关闭nginx服务_如何启动nginx

如何关闭nginx服务_如何启动nginxNginx服务器启停命令Nginx安装完成后,接下来我们要学习的是如何启动、重启和停止Nginx的服务。对于Nginx的启停在linux系统中也有很多种方式,我们本次课程介绍两种方式:Nginx服务的信号控制Nginx的命令行控制方式一:Nginx服务的信号控制前面在提到Nginx的高性能,其实也和它的架构模式有关。Nginx默认采用的是多进程的方式来工作的,当将Nginx启动后,我们通过ps-ef|grepnginx命令可以查看到如下内容:从上图中可以看到,Nginx后台进程中包含

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Nginx服务器启停命令

Nginx安装完成后,接下来我们要学习的是如何启动、重启和停止Nginx的服务。对于Nginx的启停在linux系统中也有很多种方式,我们本次课程介绍两种方式:

  1. Nginx服务的信号控制
  2. Nginx的命令行控制

方式一:Nginx服务的信号控制

前面在提到Nginx的高性能,其实也和它的架构模式有关。Nginx默认采用的是多进程的方式来工作的,当将Nginx启动后,我们通过ps -ef |grep nginx命令可以查看到如下内容:
**信号控制**
从上图中可以看到,Nginx后台进程中包含一个master进程和多个worker进程,master进程主要用来管理worker进程,包含接收外界的信息,并将接收到的信号发送给各个worker进程,监控worker进程的状态,当worker进程出现异常退出后,会自动重新启动新的worker进程。而worker进程则是专门用来处理用户请求的,各个worker进程之间是平等的并且相互独立,处理请求的机会也是一样的。nginx的进程模型,我们可以通过下图来说明下:
Nginx管理员
我们现在作为管理员,只需要通过给master进程发送信号就可以来控制Nginx,这个时候我们需要有两个前提条件,一个是要操作的master进程,一个是信号。

1.要想操作Nginx的master进程,就需要获取到master进程的进程号ID。获取方式简单介绍两个

  • 通过ps -ef | grep nginx;
  • 在讲解nginx的./configure的配置参数的时候,有一个参数是–pid-path=PATH默认是/usr/local/nginx/logs/nginx.pid,所以可以通过查看该文件来获取nginx的master进程ID.

2.信号
在这里插入图片描述
调用命令为kill -signal PID

signal:即为信号;PID即为获取到的master线程ID

1.发送TERM/INT信号给master进程,会将Nginx服务立即关闭。

kill -TERM PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
kill -INT PID / kill -INT `cat /usr/local/nginx/logs/nginx.pid`

2.发送QUIT信号给master进程,master进程会控制所有的work进程不再接收新的请求,等所有请求处理完后,在把进程都关闭掉。

kill -QUIT PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

3.发送HUP信号给master进程,master进程会把控制旧的work进程不再接收新的请求,等处理完请求后将旧的work进程关闭掉,然后根据nginx的配置文件重新启动新的work进程

kill -HUP PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

4.发送USR1信号给master进程,告诉Nginx重新开启日志文件

kill -USR1 PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

5.发送USR2信号给master进程,告诉master进程要平滑升级,这个时候,会重新开启对应的master进程和work进程,整个系统中将会有两个master进程,并且新的master进程的PID会被记录在/usr/local/nginx/logs/nginx.pid而之前的旧的master进程PID会被记录在/usr/local/nginx/logs/nginx.pid.oldbin文件中,接着再次发送QUIT信号给旧的master进程,让其处理完请求后再进行关闭

kill -USR2 PID / kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
kill -QUIT PID / kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

6.发送WINCH信号给master进程,让master进程控制不让所有的work进程在接收新的请求了,请求处理完后关闭work进程。注意master进程不会被关闭掉

kill -WINCH PID /kill -WINCH`cat /usr/local/nginx/logs/nginx.pid`

方式二:Nginx的命令行控制

此方式是通过Nginx安装目录下的sbin下的可执行文件nginx来进行Nginx状态的控制,我们可以通过nginx -h来查看都有哪些参数可以用:
在这里插入图片描述
-?和-h:显示帮助信息

-v:打印版本号信息并退出

-V:打印版本号信息和配置信息并退出

-t:测试nginx的配置文件语法是否正确并退出

-T:测试nginx的配置文件语法是否正确并列出用到的配置文件信息然后退出

-q:在配置测试期间禁止显示非错误消息

-s:signal信号,后面可以跟 :

stop[快速关闭,类似于TERM/INT信号的作用]

quit[优雅的关闭,类似于QUIT信号的作用]

reopen[重新打开日志文件类似于USR1信号的作用]

reload[类似于HUP信号的作用]

-p:prefix,指定Nginx的prefix路径,(默认为: /usr/local/nginx/)

-c:filename,指定Nginx的配置文件路径,(默认为: conf/nginx.conf)

-g:用来补充Nginx配置文件,向Nginx服务指定启动时应用全局的配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis雪崩原因_什么是redis雪崩

    redis雪崩原因_什么是redis雪崩1、每天和技术水友,提三个问题。不喜勿喷。redis雪崩效应:1、redis缓存的时间同时失效或者无效的key,落地到db层,导致db层压力过大,引发一系列的功能不可用解决措施:以下穷逼公司解决方案:1、redis设置时间加入随机时间2、数据量少考虑加入本地缓存3、限流(TODO:用户体验不好)4、互斥锁(TODO:用的不好,系统分分钟down掉)5、定时任务(TODO:小心点,别乱塞)此乃富有公司最终解决方案6、加服务器(最终解决方案,一台不行加10台)…

    2025年11月16日
    2
  • 一个全心全意帮助程序猿跳槽的创业者「建议收藏」

    一个全心全意帮助程序猿跳槽的创业者

    2022年1月26日
    41
  • navicat15 mac激活[最新免费获取]

    (navicat15 mac激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~747EFQ8BIF-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    89
  • 移动硬盘写入数据报错“MS-DOS功能无效”,或移动硬盘内新建文件夹报错0x8000FFFF灾难性错误

    移动硬盘写入数据报错“MS-DOS功能无效”,或移动硬盘内新建文件夹报错0x8000FFFF灾难性错误问题已解决,文章有点长,请耐心观看,包含遇到的问题和解决问题地过程。楼主近来新买了机械个硬盘,闲鱼出品,必属精品,主要是用来存储一些很有纪念意义的文件和平时用不到的文件,估计以后用到这些文件的机会应该很少了,一般来说机械硬盘虽然比固态硬盘不禁摔,但是存储数据的时间更长,很适合我的需求。晚上一股脑把数据存进去的时候,2T的硬盘大概存了150G之后开始报错。先是放入文件夹时显示【MS-DOS功能无效】,无法写入,我把文件夹内单个文件写入硬盘,可行,但不可能把各种类型的文件直接放进硬盘。我尝试新建文

    2022年9月25日
    4
  • Idea使用git切换远程分支[通俗易懂]

    描述公司开发人数越来越多,项目业务逻辑越来越复杂,就有了越来越多的分支,各个小伙伴在各自的分支上进行开发,然后进行合并,如果本大爷需要切换到别的开发分支上,那如何实现呢?解决方案屁话不多说,直接上图 点击鼠标右键,选择GIT–>Repository–>Pull… Branchestomerge:选择你需要的分支,如果你没遇到你想要的分支就点击刷新一下。…

    2022年4月4日
    899
  • navicat2021激活码【中文破解版】

    (navicat2021激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html3Y…

    2022年3月30日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号