Nginx 笔记与总结(2)信号控制
开启、关闭、重启 Nginx
官方地址:http://wiki.nginx.org/CommandLine
开启:
/usr/local/nginx/sbin/nginx
关闭,用信号控制,语法:
kill 信号名 pid
查看 Nginx 进程:
netstat -antp

或
ps aux|grep nginx

master process 表示主进程,用来管理子进程
关闭 Nginx:

master process 和 worker process 这两个进程已经不存在了,同时 80 端口已经没有被占用了。
Nginx 的信号控制包括:
| TERM, INT | Quick shutdown(紧急关闭,轻易不要这样使用) |
| QUIT | Graceful shutdown(优雅地关闭进程,即等请求结束后再关闭) |
| KILL | Halts a stubborn process |
| HUP | Configuration reload Start the new worker processes with a new configuration Gracefully shutdown the old worker processes(改变配置文件,平滑地重读配置文件) |
| USR1 | Reopen the log files(重读日志,在日志按月/日分割时有用) |
| USR2 | Upgrade Executable on the fly(平滑地升级) |
| WINCH | Gracefully shutdown the worker processes(优雅地关闭旧的进程(配合USR2来进行升级)) |
【测试 HUP】
① 访问 http://192.168.254.100/

② 更改配置文件:
vim /usr/local/nginx/conf/nginx.conf
在 index.html 前加上 test.html。此时 test.html 的优先级要高于 index.html

③ 在 nginx 的 html 目录下新建 test.html:
vim /usr/local/nginx/html/test.html

此时在 nginx 的 html 目录下就多了 test.html 文件:
ls /usr/local/nginx/html/

④ 平滑地重读配置文件:
首先查看 nginx 的进程号 pid:2192

平滑地重读配置文件:
kill -HUP
重新访问 192.168.254.100:

【另一个测试 HUP】
① 修改 test.html:
<!DOCTYPE html>
<html>
<head>
<meat charset="utf-8">
<title>test HUP</title>
</head>
<body>
test HUP
<script>
window.location.href="/";
</script>
</body>
</html>

导致的结果是访问该页面,该页面会一直刷新:

② 修改配置文件:
vim /usr/local/nginx/conf/nginx.conf
去掉 test.html

此时页面一直在刷新,而内容不变;
③ 再次平滑地重读配置文件:
kill -HUP
内容在很短时间内改变为 Welcome to nginx!
或者
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
因为
cat /usr/local/nginx/logs/nginx.pid
输出的就是 nginx 的 pid:2192
进程文件 nginx.pid 是不会变的,而进程号 pid 是会变的。
【测试 USR1】
① 查看 nginx 的 logs 目录,有一个 access.log,它记录了所有对 Web 服务器的访问活动(例如上例中 js 不断刷新页面就会记录到 access.log 中,该文件会一直增涨):

如果要把 access.log 按日期进行备份,不能简单地只把 access.log 更改为 access.log.20150722,然后新建一个 access.log。因为该文件的 inode 是不变的,access.log.20150722 还在继续增涨。
② 要想新的日志写进新的 access.log ,则需要使用 Nginx 信号控制中的 USR1:
kill -USR1
此时新的日志都写进了新建的 access.log 中,access.log.20150722 的大小则保持不变,完成备份。
Nginx 笔记与总结(2)信号控制的更多相关文章
- Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解
文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...
- Nginx 的信号控制
摘自:Nginx服务器初识:Nginx启动.停止与信号控制 名称 功能 说明 HUP 重启 QUIT 从容关闭 TERM 快速关闭 INT 从容关闭 USR1 切换日志文件 通常用在切 ...
- openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍
openresty开发系列2--nginx的简单安装,正向.反向代理及常用命令和信号控制介绍 一.nginx的安装下载及编译安装1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/u ...
- nginx 的信号控制概述
<nginx 在ubuntu 上的启动,停止,重启>中的停止和重启命令基本都是用信号来控制的.这是一些简单的信号控制. 在Nginx服务器中,通常情况都是通过对其发送控制信号进行控制的,除 ...
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
Nginx 的启动 假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...
- Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级
1.Nginx 启动与停止 (1)启动方式 启动格式:Nginx可执行文件地址 -c Nginx配置文件地址 /etc/local/nginx/sbin/nginx -c /root/dufy/ngi ...
- 运行和控制Nginx——命令行参数和信号
参考资料: Nginx中文文档: http://www.nginx.cn/nginxchscommandline Nginx的启动.停止.平滑重启.信号控制和平滑升级:http://zachary-g ...
- nginx学习之——信号控制和配置
一.信号控制 1)TERM, INT Quick shutdown \\麻溜停掉(暴力停止),一般不常用 // 启动和停止nginx 当前目录:/usr/local/bin/nginx 启动: ...
- 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx] ...
随机推荐
- Power Strings(poj 2406)
题意:求字符串中循环节出现的次数 KMP!!! #include<cstdio> #include<iostream> #include<cstring> #def ...
- python基础——切片
python基础——切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', ...
- 侃侃前端MVC设计模式
前言 前端的MVC,近几年一直很火,大家也都纷纷讨论着,于是乎,抽空总结一下这个知识点.看了些文章,结合实践略作总结并发表一下自己的看法. 最初接触MVC是后端Java的MVC架构,用一张图来表示之— ...
- MVC学习笔记---MVC生命周期及管道
ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例 ...
- css局部概念的理解:
1.DIV-Padding理解:一直以来对div中的padding属性,一直不理解,使用最多的也就是margin,padding是div的内空间的相对距离,margin是div的外部相对位置,如果用一 ...
- 用VMware9 安装 mac 10.8和10.9搜集的资料
VMware9虚拟机安装MAC OS X Mountain Lion 10.8.2详细图文教程 http://diybbs.zol.com.cn/1/34037_699.html vmware too ...
- C#实现UTC时间与Datetime转换
为了便于传输,通信过程中传输的都是:当前时间跟标准时间相隔的秒数,并且是以16进制字节的形式传输的. public double ConvertDateTimeInt(System.DateTime ...
- 版本引发的血案check the manual that corresponds to your MySQL server version for the right syntax
该错误mysql5.1有问题,mysql5.3版本没问题
- Android 在布局容器中动态添加控件
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...
- Edmond_Karp算法
核心思想:通过bfs不断在网络中寻找最短的增广路,从而求得最大流.时间复杂度O(VE^) 算法模板: int Edmond_Karp(int s,int t) { ; memset(flow,,siz ...