首页 > 系统相关 >(转)Nginx:04---Nginx的命令行控制

(转)Nginx:04---Nginx的命令行控制

时间:2022-11-17 16:12:57浏览次数:47  
标签:sbin 04 nginx sudo --- Nginx usr local

原文:https://blog.csdn.net/qq_41453285/article/details/106295274

在默认的情况下:
Nginx安装在/usr/local/nginx/下
可执行的Nginx文件为/usr/local/nginx//sbin/nginx
默认的配置文件为/usr/local/nginx/conf/nginx.conf
一、Nginx启动的几种方式
①默认启动方式
执行执行Nginx二进制程序。例如:
sudo /usr/local/nginx/sbin/nginx


默认的启动方式会读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf
②以其他配置文件的启动方式(-c)
使用-c参数指定配置文件
例如,下面以~/目录下的tmpnginx.conf配置文件启动nginx
sudo /usr/local/nginx/sbin/nginx -c ~/tmpnginx.conf
③另行执行安装目录的启动方式(-p)
使用-p参数指定Nginx的安装目录。例如:
sudo /usr/local/nginx/sbin/nginx -p /usr/local/nginx
④另行指定全局配置项的启动方式(-g)
可以通过-g参数临时指定一些全局配置项,以使新的配置项生效
例如,上面这行命令意味着会把pid文件写到/var/nginx/test.pid中
sudo /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;"
使用该参数有两个约束条件:
①指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否 则无法启动。就像上例那样,类似这样的配置项:pid logs/nginx.pid,是不能存在于默认的 nginx.conf中的
② 以-g方式启动的Nginx服务执行其他命令行时,需要把-g参数也带上,否则可能出现配置项不匹配的情形。例如,如果要停止Nginx服务,那么需要执行下面代码,如果不带上-g "pid /var/nginx/test.pid;",那么找不到pid文件,也会出现无法停止服务的情 况
sudo /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;" -s stop
二、Nginx关闭的几种方式
①快速地停止服务(-s stop)
使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服 务发送信号量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的 master进程发送TERM信号来快速地关闭Nginx服务
例如:
sudo /usr/local/nginx/sbin/nginx -s stop
实际上,如果通过kill命令直接向nginx master进程发送TERM或者INT信号,效果是一样的。例如,先通过ps命令来查看nginx master的进程ID,然后通过kill命令关闭


sudo kill -s SIGTERM 20512

#或者使用下面的命令
sudo kill -s SIGINT 20512
②“优雅”地停止服务(-s quit)
如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参数来停止服务。该命令与快速停止Nginx服务是有区别的。当快速停止服务时,worker进程与master进程 在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口, 停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
例如:
sudo /usr/local/nginx/sbin/nginx -s quit


与快速停止服务相似,可以直接发送QUIT信号给master进程来停止服务。其效果与执 行-s quit命令是一样的。例如:
sudo kill SIGQUIT <nginx master pid>
三、关闭某个worker进程
如果希望“优雅”地停止某个worker进程,与上面一样,那么可以通过向该进程发送WINCH信号来停止 服务
例如:
sudo kill -s SIGWINCH <nginx worker pid>
四、查看信息相关的命令
①测试配置信息是否有错误(-t)
在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误。执行结果中显示配置是否正确
例如:
sudo /usr/local/nginx/sbin/nginx -t


②在测试配置阶段不输出信息(-q)
测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕
例如:
sudo /usr/local/nginx/sbin/nginx -t -q


③显示版本信息(-v)
使用-v参数显示Nginx的版本信息
例如:
sudo /usr/local/nginx/sbin/nginx -v


④显示编译阶段的参数(-V)
使用-V参数除了可以显示Nginx的版本信息外,还可以显示配置编译阶段的信息,如GCC编译器的版本、操作系统的版本、执行configure时的参数等
例如:
sudo /usr/local/nginx/sbin/nginx -V


四、使运行中的Nginx重读配置项并生效
使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件
演示案例
先启动Nginx


然后使Nginx服务重新加载nginx.conf文件
sudo /usr/local/nginx/sbin/nginx -s reload


事实上,Nginx会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭, 再重新启动Nginx来实现这个目的
类似的,-s是发送信号,可以用kill命令发送HUP信号来达到相同的效果。例如:
sudo kill SIGHUP <nginx master pid>
五、日志文件回滚
使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件。这个功能使得日志文件不至于过大
例如:
sudo /usr/local/nginx/sbin/nginx -s reopen
当然,使用kill命令发送USR1信号效果相同
sudo kill SIGUSR1 <nginx master pid>
六、平滑升级Nginx
当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级
升级时包括以下步骤:
①通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目的。例如:kill -s SIGUSR2 <nginx master pid>
②这时,运行中的Nginx会将pid文件重命名,如将usrlocal/nginx/logs/nginx.pid重命名 为usrlocal/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功
③启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可以发现新旧版本的Nginx在同时运行
④通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的 Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕
七、查看命令行帮助
使用-h或者-?参数会显示支持的所有命令行参数
sudo /usr/local/nginx/sbin/nginx -h

 

标签:sbin,04,nginx,sudo,---,Nginx,usr,local
From: https://www.cnblogs.com/liujiacai/p/16899778.html

相关文章

  • 灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”
    近日,由边缘计算社区主办的全球边缘计算大会·上海站成功召开,灵雀云凭借出色的全栈云原生技术实力、专业的高品质服务以及在边缘云场景的丰富落地实践,斩获“2022金边奖-最佳......
  • el-tree 初始加载中状态
    问题二次封装了一个el-tree组件MenuTree,想要在树形数据nodeData传递之前,树显示为loading加载中的状态。原代码是在MenuTree中监听nodeData,data中声明treeLo......
  • LVS负载均衡集群--DR模式
    一、LVS-DR集群介绍LVS-DR(LinuxVirtualServerDirectorServer)工作模式,是生产环境中最常用的一种工作模式。1、LVS-DR工作原理LVS-DR模式,DirectorServer作为群集......
  • nginx高并发优化之缓存配置
    一、配置http{proxy_cache_path/app/cache/levels=1:2keys_zone=proxy_cache:10mmax_size=10ginactive=60muse_temp_path=off;upstreambackend{server127......
  • python3-基础篇-09-字典
     字典的特点:1.无序的2.key唯一ps:类似于java中的map一、字典创建字典的每个键值key=>value对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中,格......
  • 浅谈智能DNS云解析(一)-中科三方
    智能DNS云解析通过其智能解析,健康监测,负载均衡,宕机切换等高可用性的功能特性,给客户带来快捷,安全,流畅的上网体验。传统的DNS因为其解析时间冗长,易被劫持,无法精准调配用户的......
  • 代码随想录day1补充之LeetCode27移除元素相向双指针法&补充题目---LeetCode35搜索插入
    1.LeetCode27移除元素题是晚上刷的,今天看发现第一天的题目只写了快慢指针法(见链接Day1),现补充练习实现相向双指针法。分析:相向双指针法是指使用左右指针,左指针寻找需要移......
  • Python数据分析与应用 ---- 航空公司客户价值分析
    Python数据分析与应用----航空公司客户价值分析 Python数据分析与应用----航空公司客户价值分析_骑着蜗牛ひ追导弹'的博客-CSDN博客_航空客户数据分析......
  • python三十六期---
    昨日内容回顾TCP与UDP协议TCP 可靠协议三次握手建立链接 1.洪水攻击 2.消息反馈四次挥手断开链接 1.time_waitUDP 不可靠协议"""TCP......
  • 转 - Ubuntu 无法进行SSH连接,开启22端口
      我们在VM中安装好Ubuntu虚拟机后,经常需要使用Xshell等工具进行远程连接,但是会出现无法连接的问题,原因是Ubuntu中默认关闭了SSH服务。1、查看Ubuntu虚拟机IP地......