运行和控制Nginx——命令行参数和信号

参考资料:

  Nginx中文文档:  

  Nginx的启动、停止、平滑重启、信号控制和平滑升级:

命令行参数

常用命令:

  -c filename:设置配置文件。

  -t :不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

  -s :传递一个信号,stop快速关闭,quit从容关闭,reopen重新打开日志文件、用于切换日志文件,reload重载配置文件。

  -v :显示nginx的版本。

  -V:显示nginx的版本,编译器版本和配置参数

———————————————————————————————————————————————————————————

[root@localhost /]# alias nginx=’/usr/local/nginx/sbin/nginx’
[root@localhost /]# alias

运行和控制Nginx——命令行参数和信号


[root@localhost /]# nginx -h nginx version: nginx/1.11.13Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]Options:  -?,-h         : this help  -v            : show version and exit  -V            : show version and configure options then exit  -t            : test configuration and exit  -T            : test configuration, dump it and exit  -q            : suppress non-error messages during configuration testing  -s signal     : send signal to a master process: stop, quit, reopen, reload  -p prefix     : set prefix path (default: /usr/local/nginx/)  -c filename   : set configuration file (default: conf/nginx.conf)  -g directives : set global directives out of configuration file[root@localhost /]#

———————————————————————————————————————————————————————————

控制信号:

  可以使用信号系统来控制主进程。默认,nginx 将其主进程的 pid 写入到 /usr/local/nginx/logs/nginx.pid 文件中。通过传递参数给 ./configure 或使用 pid 指令,来改变该文件的位置。 

主进程可以处理以下的信号:

TERM,INT快速关闭QUIT从容关闭HUP

重新配置

用新的配置开始新的工作进程

从容关闭旧的工作进程

USR1重新打开日志文件,在切割日志时用途较大USR2平滑升级可执行程序WINCH从容关闭工作进程

 

  

 

 

 

 

 

 

 

启动:

  启动代码格式:nginx安装目录地址 -c nginx配置文件地址

[root@localhost ~]# alias nginx='/usr/local/nginx/sbin/nginx'[root@localhost ~]# nginx -c /usr/local/nginx/conf/nginx.conf[root@localhost ~]# ps -ef|grep nginxroot      2073     1  0 10:37 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confnobody    2074  2073  0 10:37 ?        00:00:00 nginx: worker process                                          root      2076  2022  0 10:37 pts/0    00:00:00 grep nginx[root@localhost ~]#   

 停止:

  从容停止:

# ` 字符是数字键盘 1 字符左边的那个字符
[root@localhost ~]# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`

  快速停止:

[root@localhost ~]# kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

    或

[root@localhost ~]# kill -INT `cat /usr/local/nginx/logs/nginx.pid`

  强行停止:

[root@localhost ~]# kill -9 nginx

重启:

  1.普通重启:关闭进程,修改配置后,重启进程

  2.重新加载配置文件,不重启进程,不会停止处理请求

  3.平滑更新nginx二进制,不会停止处理请求

=========================================================================

注意:在重载前,测试一下配置文件:

# -t 参数将检查配置文件的语法是否正确,默认会检查 /usr/local/nginx/conf/nginx.conf 文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 如果要对指定配置文件进行语法检查,可以继续添加 -c 参数
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost ~]#

=========================================================================

nginx的平滑重启:

  如果改变了nginx的配置文件,想重启nginx,同样可以发送系统型号给nginx主进程的方式来进行,重启之前,要确认配置文件是否正确

[root@localhost ~]# kill -HUP 【nginx主进程号】

  当 nginx 接收到 HUP 信号时,它会尝试先解析配置文件,如果成功,就应用新的配置文件(例如,重新打开日志文件或监听的套接字)。之后,nginx 运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有的客户端的服务完成后,旧的工作进程被关闭。如果新的配置文件应用失败,nginx 将继续使用旧的配置文件进行工作。

nginx的平滑升级:

  当需要将正在运行中的nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下,使用新的nginx可执行程序替换旧的:

  1.使用新的可执行程序替换旧的可执行程序,对于编译安装的nginx,可以将新版本编译安装到nginx安装路径中,替换之前,备份一下旧的可执行文件

  2.发送以下指令:

[root@localhost ~]# kill -USR2 【旧版本的nginx主进程号】

  3.旧版本的nginx的主进程将重命名它的pid文件为.oldbin(例如:/usr/local/nginx/logs/nginx.pid.oldbin),然后执行新版本的nginx可执行程序,依次启动新的主进程和新的工作进程。

  4.此时,新、旧版本的nginx实例会同时运行,共同处理输入的请求,要逐步停止旧版本的nginx,必须发送WINCH信号给旧的主进程,然后,它的工作进程就开始从容关闭:

[root@localhost ~]# kill -WINCH 【旧版本的nginx主进程号】

  5.一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了。

  6.这时候,可以决定是使用新版本,还是恢复到旧版了:

    kill -HUP  【旧的主进程号】:nginx将在不重载配置文件的情况下启动它的工作进程

    kill -QUIT 【新的主进程号】:从容关闭其工作进程(worker process)

    kill -TERM 【新的主进程号】:强制退出

    kill 【新的主进程号或旧的主进程号】:如果因为某些原因新的工作进程不能退出,则向其发送kill信号

  新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复为它的.pid文件,这样,一切就都恢复到升级之前了。

   如果尝试升级成功,而你也希望保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行。

以上就是运行和控制Nginx——命令行参数和信号的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/189171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
2024中国汽车市场品牌销售额排名:问界理想均超千亿
上一篇 2026年9月6日 12:19:51
搜狗浏览器怎么取消拦截 搜狗浏览器取消拦截教程
下一篇 2026年9月6日 12:25:40

相关推荐

  • 如何在Laravel中配置HTTPS支持

    配置https支持主要分为以下步骤:1.获取ssl证书,可通过购买或使用let’s encrypt免费证书;2.配置服务器(nginx或apache),设置443端口及证书路径;3.强制https重定向,通过服务器配置或laravel中间件实现;4.配置laravel的url生成为htt…

    2026年9月13日
    000
  • Linux文件权限修改命令chmod讲解

    chmod命令用于修改文件和目录的权限,核心是通过数字模式(如755、644)或符号模式(如u+x、go-w)设置用户、组和其他人的读(r)、写(w)、执行(x)权限。数字模式适合初始权限设置,简洁高效;符号模式适合增量调整,安全灵活。正确使用chmod遵循最小权限原则,避免777等高风险权限,防止…

    2026年9月13日
    000
  • 如何在Laravel中管理环境变量

    在laravel中管理环境变量的核心在于利用.env文件和config配置系统。具体来说,1. 使用.env文件存储环境变量,如数据库连接信息、api密钥等;2. 通过laravel的配置文件(如config/database.php)读取.env中的值,并使用config()函数获取配置;3. 在…

    2026年9月13日
    000
  • Linux如何使用journalctl查看服务日志

    journalctl是Linux系统下排查服务日志的核心工具,通过-u参数可定位特定服务日志,结合-f实现实时追踪,-p按级别筛选错误信息,–since和–until支持时间段过滤,组合使用可高效定位问题;为避免日志重启后丢失,需配置/etc/systemd/journald…

    2026年9月13日
    100
  • huARdb:单细胞水平克隆型-转录组分析的人类抗原受体数据库

    前言 摘要 人类的适应性免疫系统是免疫反应的一个重要分支,负责识别和清除特定抗原。通过与特定抗原的结合,适应性免疫系统被激活,并能保存对目标抗原的长期免疫记忆。因此,具有高特异性的长期免疫记忆能够在后续抗原暴露中引发更强烈的反应。适应性免疫反应的激活需要T细胞或B细胞上的受体识别抗原,这些受体分别称…

    2026年9月13日
    200
  • 如何在Laravel中实现URL重写

    laravel的url重写通过路由系统实现,而非服务器配置。1. 路由定义将url映射到控制器或闭包,如route::get(‘/products’, ‘controller@index’);2. 参数可通过{id}形式传递,并支持正则约束,如-&gt…

    2026年9月13日
    100
  • 如何在Laravel中管理静态资源

    在laravel中管理静态资源的核心方法是使用public目录结合vite或laravel mix等构建工具实现高效加载和版本控制。1. public目录作为所有公开访问资源的根目录,由web服务器直接提供服务;2. 使用asset()、vite()或mix()辅助函数生成带版本哈希的url,确保浏…

    2026年9月13日
    200
  • Linux怎么查看进程的环境变量

    Linux怎么查看进程的环境变量Linux怎么查看进程的环境变量Linux怎么查看进程的环境变量Linux怎么查看进程的环境变量

    查看Linux进程环境变量可用ps命令或读取/proc/[pid]/environ文件;前者通过ps auxwwwe | grep 进程名快速过滤,后者需知PID并用cat /proc/PID/environ | tr ” ‘n’清晰查看,各具优劣。 查看Linu…

    2026年9月13日 用户投稿
    200
  • 什么是ThinkPHP框架?ThinkPHP如何安装配置?

    什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?什么是ThinkPHP框架?ThinkPHP如何安装配置?

    thinkphp的安装配置主要包括下载框架、配置服务器环境、进行初始化设置。1. 下载框架可通过composer安装或手动下载;2. 配置服务器环境需设置apache虚拟主机、启用url重写、配置.htaccess文件并重启服务器;3. 初始化设置包括修改数据库配置、定义应用目录并测试访问。 Thi…

    2026年9月12日 用户投稿
    100
  • Linux如何查看后台运行的进程列表

    Linux如何查看后台运行的进程列表Linux如何查看后台运行的进程列表Linux如何查看后台运行的进程列表Linux如何查看后台运行的进程列表

    要查看Linux后台进程,首选ps aux或ps -ef查看进程快照,top和htop实现实时监控,jobs管理当前shell后台任务,结合pgrep、kill、killall等命令可精准筛选与控制进程,同时需理解僵尸、孤儿进程及守护进程特性,辅以lsof、iotop、ss、strace和syste…

    2026年9月12日 用户投稿
    100
  • Linux如何限制用户的最大进程数

    限制用户进程数需通过修改/etc/security/limits.conf(永久)或使用ulimit命令(临时)。前者在用户登录时生效,格式为“domain type item value”,如“testuser soft nproc 100”;后者仅影响当前会话,如“ulimit -u 50”。核…

    2026年9月12日
    300
  • ThinkPHP的Swoole怎么集成?ThinkPHP如何提升性能?

    ThinkPHP的Swoole怎么集成?ThinkPHP如何提升性能?ThinkPHP的Swoole怎么集成?ThinkPHP如何提升性能?ThinkPHP的Swoole怎么集成?ThinkPHP如何提升性能?ThinkPHP的Swoole怎么集成?ThinkPHP如何提升性能?

    thinkphp集成swoole的核心是通过top-think/think-swoole扩展包实现常驻内存运行,安装后配置swoole.php并执行php think swoole start启动服务,避免每次请求重复加载框架;2. 集成后开发模式变化显著:应用变为长生命周期,需手动管理全局变量和静…

    2026年9月12日 用户投稿
    200
  • 如何在Linux中保持版本 Linux yum versionlock锁定

    使用yum-versionlock插件可锁定RPM包版本,防止意外升级。先安装并启用插件,通过“yum versionlock package-name”命令锁定指定包,支持通配符;用“yum versionlock list”查看已锁定包;使用“yum versionlock delete”按名称…

    2026年9月12日
    500
  • Linux如何授予用户对特定目录的访问权限

    答案是使用chown、chmod和setfacl命令组合管理目录权限。首先通过chown修改目录所有者和所属组,再用chmod设置基本读写执行权限,当需为多个用户或组分配不同权限时,使用setfacl配置ACL实现精细控制,同时注意递归操作、最小权限原则及默认ACL继承,避免过度授权和权限混乱。 在…

    2026年9月12日
    100
  • Linux如何监控服务的运行时间和负载

    Linux如何监控服务的运行时间和负载Linux如何监控服务的运行时间和负载Linux如何监控服务的运行时间和负载Linux如何监控服务的运行时间和负载

    要监控Linux服务的运行时间和负载,需选择合适的工具并配置监控与告警。首先明确监控目标如Web或数据库服务,然后选用top、ps、sar等命令行工具或Prometheus、Grafana、Nagios等系统级方案。使用top可实时查看CPU和内存占用;ps结合grep和STIME可查进程启动时间;…

    2026年9月12日 用户投稿
    000
  • 什么是YII框架?YII框架如何安装?

    yii框架适合开发高性能、大型web应用,尤其适用于企业级系统、restful api、电商平台、快速原型和社交平台。1. 使用composer安装,推荐php 7.4+,执行composer create-project –prefer-dist yiisoft/yii2-app-ba…

    2026年9月12日
    000
  • Linux如何快速上手基本命令

    Linux如何快速上手基本命令Linux如何快速上手基本命令Linux如何快速上手基本命令Linux如何快速上手基本命令

    答案:掌握Linux核心命令需结合实践,从文件导航(ls、cd、pwd)、操作(mkdir、cp、mv、rm)、内容查看(cat、less、grep)到权限管理(sudo、chmod)逐步深入,通过WSL或虚拟机搭建练习环境,动手完成具体任务并利用man和history巩固学习,理解文件系统结构与权…

    2026年9月12日 用户投稿
    100
  • 全栈应用中X-Frame-Options防护策略的正确实施

    本教程探讨了在全栈应用中配置`x-frame-options` http响应头以防止点击劫持(clickjacking)的常见误区。我们发现,在spring security等后端框架中配置此头部仅对后端api端点有效,而前端应用(如由nginx、tomcat等服务器托管的单页应用)仍可能面临风险。…

    2026年9月12日
    000
  • Linux文件权限rwx含义详解

    Linux文件权限rwx含义详解Linux文件权限rwx含义详解Linux文件权限rwx含义详解Linux文件权限rwx含义详解

    rwx权限是Linux系统安全的核心,分别代表读、写、执行三种操作,针对文件和目录有不同的作用:文件的r权限允许查看内容,w权限允许修改内容,x权限允许作为程序运行;目录的r权限允许列出其中文件,w权限允许在其中创建或删除文件,x权限允许进入该目录并访问其内部文件。权限分为所有者、所属组和其他用户三…

    2026年9月12日 用户投稿
    100
  • Linux怎么查看所有已安装的服务列表

    Linux怎么查看所有已安装的服务列表Linux怎么查看所有已安装的服务列表Linux怎么查看所有已安装的服务列表Linux怎么查看所有已安装的服务列表

    在Linux系统里,想知道到底有哪些服务在跑,或者哪些服务准备开机启动,这其实是个很基础但又很关键的问题。简单来说,最直接的办法就是用 systemctl 命令,它是现代Linux发行版(比如Ubuntu、CentOS、Debian等,只要是基于systemd的)管理服务的主力。敲一个 system…

    2026年9月12日 用户投稿
    100

发表回复

登录后才能评论
关注微信