Nginx服务器的启动控制
写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
主要内容包括:
- nginx服务的信号控制
- nginx服务的启动
- nginx服务的停止
- nginx服务的重启
参考内容:
1、《Nginx高性能 Web服务器详解》 一书,作者:苗泽
--------------------------------------------------------------------
1、Nginx服务的启停控制
1.1、Nginx服务的信号控制
在nginx服务的启停办法中,有一类是通过信号机制来实现的,nginx服务在运行时,会保持一个主进程和一个或多个worker process工作进程,我们通过给nginx服务的主进程发送信号就可以控制服务的启停了。
获取nginx服务的主进程PID有两种方法
- 查看nginx安装目录下的logs目录中产生的nginx.pid文件
- 通过命令:ps -ef|grep nginx 来查看
nginx服务的主进程能够接收的信号有:
| 信号 | 作用 |
| TERM 或 INT | 快速停止nginx服务 |
| QUIT | 平缓停止nginx服务 |
| HUP | 使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的"平滑重启" |
| USR1 | 重新打开日志文件,常用于日志切割 |
| USR2 | 使用新版本的nginx文件启动服务,之后平缓停止原有的nginx进程,也就是所谓的"平滑升级" |
| WINCH | 平缓停止worker process,用于nginx服务平滑升级 |
1.2、Nginx服务的启动
在Centos系统中,启动Nginx服务器只需要到Nginx的安装目录下找到sbin目录并且运行该目前下的"二进制文件nginx"。

下面先简单介绍一下: "二进制文件nginx"的基本用法:
(a)参数 -h、-? 用来打印二进制文件nginx的用法

(b)参数 -v 用来显示nginx服务器的版本号

(c)参数 -V 用来显示nginx服务器的版本号和nginx服务器的编译情况

(d)参数 -t 检查nginx服务器配置文件是否有语法错误

(e)参数 -t -q 一起使用,如果配置文件无错误,将不输出上面的内容

(f)参数 -s signal 是用来向nginx服务的主进程发送信号的
(g)参数 -p prefix 用来改变nginx的安装路径,常用在平滑升级Nginx服务器的场合
(h)参数 -c filename 用来指定启动nginx服务使用的配置文件
(j)参数 -g directives 用来补充nginx配置文件,向nginx服务指定启动时应用于全局的配置
下面我们就来利用二进制文件nginx来启动服务,执行命令: ./nginx ,如果没有任何错误消息输出,nginx服务就启动了。

通过 ps -ef|grep nginx命令来查看nginx服务的进程状态:

命令: netstat -ntpl查看 端口占用情况

1.3、Nginx服务的停止
停止nginx服务有两种方法:
- 快速停止: 指立即停止当前nginx服务正在处理的所有网络请求,马上丢弃链接,停止工作
- 平缓停止: 指允许nginx服务奖当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭链接,停止工作。
命令:
./nginx -g TERM | INT | QUIT
kill TERM | INT | QUIT '/nginx/logs/nginx.pid'
其中,TERM、INT信号用于快速停止,QUIT用于平缓停止。
或者用暴力的方法: kill -9 pid
1.4、Nginx服务的重启
当修改了nginx服务器的配置文件或者新加入模块后,就需求重启nginx服务。有两种办法,第一种:先关闭nginx服务,再启动。第二种:使用平滑的重启方式。
这里主要介绍平滑重启,平滑重启是这样一个过程,nginx服务进程接收到信号后,首先读取新的nginx配置文件,如果配置语法正确,则启动新的nginx服务,然后平滑关闭旧的服务进程;如果新的nginx配置文件有问题,将显示错误消息,并且仍然使用旧的nginx进程提供服务。
nginx平滑重启的命令: ./nginx -g HUP [-c newConfile]
HUP信号用于发送平滑重启信号
newConfile,可选项,用于指定新配置文件的路径
Nginx服务器的启动控制的更多相关文章
- 基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
基于多进程服务器的优点: 1.由操作系统进行调度,运行比较稳定强壮 2.能够方便地通过操作系统进行监控和管理 例如对每个进程的内存变化状况,甚至某个进程处理什么web请求进行监控.同时可以通过给进程发 ...
- 转载:Nginx的命令行控制(1.6)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19621.html 在Linux中,需要使用命令行来控制Nginx服务器的启动与停止.重载配置文件.回滚日志文件.平滑升级等行为.默认 ...
- LINUX学习--nginx服务器的安装
一.安装环境 操作系统CentOS6.8 关闭SeLinux和iptables防火墙 二.网络yum源 将下面的软件下载到 /etc/yum.repos.d/ 的目录下 官方基础:http:// ...
- 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx] ...
- Nginx服务器的平滑启动、平缓停止、平滑升级
注:Nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process). 每一个进程都会有一个PID进程号,可以通过向主进程的PID进程号发送 ...
- 启动Nginx、查看nginx进程、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
1.启动nginx的方式: cd /usr/local/nginx ls
- nginx入门篇----nginx服务器基础配置
1.nginx.conf文件结构... #全局块 events{ ... } http #http块{ ...
- nginx服务器中的安全配置
一.关闭SELinux 安全增强型Linux(SELinux)的是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制. 但是,SELinux带来的附加安全性和使用复杂性上不成比例,性价比不 ...
- nginx服务器调优
nginx服务器调优措施总结: 1.选择合适的网络IO模型 epoll select poll 2.配置合适的启动进程数和每个进程处理请求的工作线程数 3.启用gzip压缩以减小通信量以减少网络IO ...
随机推荐
- 工作当中遇到的ssh错误
[root@1bcc1d3f9666 externalscripts]# /usr/sbin/sshd Could not load host key: /etc/ssh/ssh_host_rsa_k ...
- (正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- 做php网站后台开发,在Linux系统上进行更好吗?【转载】
1. PHP是开源软件,它在bsd/linux/win下都有很好的正式版及孪生版.并非开发php就必须要在linux下进行.主机服务商们习惯性的把asp与php分为两个主机系列几进行销售.由于asp只 ...
- 8.Python3标准库--数据持久存储与交换
''' 持久存储数据以便长期使用包括两个方面:在对象的内存中表示和存储格式之间来回转换数据,以及处理转换后数据的存储区. 标准库包含很多模块可以处理不同情况下的这两个方面 有两个模块可以将对象转换为一 ...
- EL(表达式)语言的几种运算符
1.EL的基本语法 (1)EL表达式语法:以${开头,以}结束,中间为合法的表达式,具体语法格式如下: ${expression} (2)参数说明:Expression:指定要输出的内容,可以是字符串 ...
- NGUI优化之Drawcall
今天在运行之前的程序时,无意中发现一个简单的menu菜单页面drawcall居然达到接近30了,这个数值感觉太高了. 后网上查询关于降低drawcall的方法,发现主要有以下几点: 1.少用Panel ...
- Codefroces 919D Substring(拓扑排序+DP)
题目链接:http://codeforces.com/problemset/problem/919/D 题目大意:给你一张有向图,给你每个顶点上的字母和一些边,让你找出一条路径,路径上的相同字母数最多 ...
- beego学习笔记(4):开发文档阅读(6)
beego的响应流程: 1.监听的端口接收数据,默认是8080端口. 2.用户请求到达8080端口后,开始数据处理流程. 3.初始化CONTEXT对象.判断是否是WEBSOCKET请求,如果是,设置I ...
- 500 多个 Linux 命令文档搜索
500 多个 Linux 命令文档搜索 搜索界面:https://wangchujiang.com/linux-command/ 源码:https://github.com/jaywcjlove/li ...
- neo4j中索引的使用
neo4j可以对node和relationship中的属性建立索引,索引中的node(relationship)和属性对key-value为多对多的关系.一个node(relationship)可以在 ...