转载 https://www.cnblogs.com/xd502djj/p/5594992.html

Nginx reopen reload作用及工作过程

2012-12-05  categories:nginx  author:sch

原创文章,转载请指明出处并保留原文url地址

一.Nginx简介

Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。Nginx 已经在俄罗斯最大的门户网站── Rambler Media(www.rambler.ru)上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器。

Nginx优点及介绍网络上非常多,大家自己去找一下

http://www.nginx.org/    下载

http://www.nginx.com/    文档及支持

这两个网站是nginx本身的网站,可以下载程序及查看文档。不过好像nginx文档一般不是很全。

二.Nginx安装

以centos为例安装nginx 供参考,详情参考nginx网站

编译Nginx的要求如下:

磁盘空间:需要保证有10MB以上的剩余磁盘空间。Nginx安装完毕后会占据4MB左右的磁盘空间,实际的磁盘空间需求会因编译设置和是否安装第三方模块而有所不同。

GCC编译器及相关工具:GCC全称为GNU Compiler Collection,  是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的代表作品之一,目前可以编译的语言包括:C、C++、Objective-C、Fortran、Java等。您必须确保您的操作系统安装有GCC编译器。

另外,您还必须安装Autoconf和Automake工具,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。在CentOS系统下,您可以使用yum命令安装GCC编译器及相关工具:

yum -y install gcc gcc-c++ autoconf automake

模块依赖性:Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。同样,如果是在CentOS系统下,我们可以使用yum命令安装或下载源码包编译安装这些模块依赖的库:

yum -y install zlib zlib-devel openssl openssl–devel pcre pcre-devel

Nginx在Linux环境下可以通过编译源码的方式来安装,最简单的安装命令如下:

tar zxvf nginx-版本号.tar.gz

cd nginx-版本号

./configure

make

make install

按照以上命令,Nginx将被默认安装到/usr/local/nginx目录下。

您可以通过/configure –help命令查看Nginx可选择的编译选项。

编译选项举例如下:

–prefix=<path>   Nginx安装路径。如果没有指定,默认为/usr/local/nginx

–sbin-path=<path>   Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx

–conf-path=<path>   在没有给定 –c 选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf

–pid-path=<path>     在nginx.conf中没有指定pid指令的情况下,默认的Nginx.pid的路径。如果没有指定,默认为<prerix>/logs/nginx.pid

三.Nginx命令

Nginx命令帮助如下

$ /opt/ngx/sbin/nginx -h

nginx version: nginx/0.8.45

Usage: nginx [-?hvVt] [-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 // 测试配置文件,非常重要

-s signal     : send signal to a master process: stop, quit, reopen, reload // 发送信号

-p prefix     : set prefix path (default: /opt/nginx-0.8.45/)

-c filename   : set configuration file (default: conf/nginx.conf) // 指定配置文件

-g directives : set global directives out of configuration file

上图是nginx官方网站对nginx信号的解释文档截取

下面是一些常见nginx命令

nginx -c /path/to/nginx.conf  // 以特定目录下的配置文件启动nginx:

nginx -s  reload  // 修改配置后重新加载生效

nginx -s  reopen   // 重新打开日志文件

nginx -s stop  // 快速停止nginx

nginx -s quit  // 完整有序的停止nginx

nginx -t     // 测试当前配置文件是否正确

nginx -t -c /path/to/nginx.conf  //测试特定的nginx配置文件是否正确

其他命令大家自己查资料了,一般都有介绍。下面我们来讨论一下

四.Nginx日志切割

为什么要切割日志?一般Nginx安装好后有些人会打开日志记录,有些人会关闭日志记录,打开日志记录的人一般都会把架设在Nginx上的所有网站日志都存在同一个文件里(比如我存在access.log日志文件里),这样日积月累所有网站的访问记录就会把日志文件越积越大,当需要查看日志文件的时候一看就是一大串,不方便查找。现在,如果我把每天的日志文件分割开来用相应的日期标识出来这样就大大方便查找了。

我是建议打开日志记录,日志记录里面存放着很多有用的东西。比如:浏览器名称,可以方便你对网站的排版做出调整;IP地址,如果网站收到攻击,你就可以查到那个IP地址。

Linux下我们可以简单的把日志文件mv走,但是你会发现mv走后新的日志文件没有重新生成,一般linux下用的文件句柄,文件被打开情况下你mv走文件,但是原来操作这个文件的进程还是有这个文件的inode等信息,原进程还是读写原来的文件,因此简单的mv是无法生效的。

因此建议过程如下

1. mv原文件到新文件目录中,这个时候 nginx还写这个文件(写入新位置文件中了)

2. 调用nginx -s  reopen用来打开日志文件,这样nginx会把新日志信息写入这个新的文件中

这样完成了日志的切割工作, 同时切割过程中没有日志的丢失。

五.Nginx配置文件重载

Nginx工作过程中,包括master进程,多个worker进程,worker进程负责具体的http等相关工作,master进程主要是进行控制等控制。当修改完成nginx的配置文件后,需要采用

nginx -t    测试被修改的配置文件是否正确,若是不正确继续修改,直到测试通过为止, 在测试过程中,对nginx工作没有任何影响(测试仅仅是master的工作,worker负责具体工作,测试中仅仅master测试一些配置文件结构定义等。)

当新的配置文件测试通过后,我们可以通过

nginx -s  reload 命令加载修改后的配置文件,命令下达后发生如下事件

1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)

2. Nginx启动新的worker进程,采用新的配置文件

3. Nginx将新的请求分配新的worker进程

4. Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程

5. 重复上面过程,知道全部旧的worker进程都被关闭掉

以上过程是参考nginx官方的相关文档后得出。

Nginx reopen reload作用及工作过程相关推荐

  1. MMU的作用及工作过程

    MMU的作用及工作过程       MMU(Memory Management Unit)是内存管理单元的简称,读者朋友在学习嵌入式的时候应该听说过µCLinux,这是适合没有MMU的微控制器使用的嵌 ...

  2. TLB的作用及工作过程

    转载:TLB的作用及工作过程 前言: 页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令.数据需要访问两次内存:首先通过查询页表得到物理地址,然后访问该物理地址读取指令.数据.为了减少 ...

  3. cpu功能解析,cpu功能作用与其工作过程

    cpu即中央处理器,是计算机的运算核心和控制核心.cpu中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( C ...

  4. 路由交换的作用/原理/工作过程

    交换机 可以为接入交换机的任意两个网络节点提供独享的电信号通路. 以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中. 二层交换机的作用: 区 ...

  5. JVM 执行引擎的作用及工作过程

    执行引擎的概述 执行引擎是 Java 虚拟机核心的组成部分之一. "虚拟机"是一个相对于"物理机"的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是 ...

  6. TLB的作用及工作原理

    TLB的作用及工作过程 以下内容摘自<步步惊芯--软核处理器内部设计分析>一书 页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令.数据需要访问两次内存:首先通过查询页表得 ...

  7. TLB的作用及工作原理,如何查看TLB miss?

    目录 TLB的作用及工作过程 TLB工作原理 TLB原理 TLB表项 全相连 - full associative 组相连 - set-associative TLB表项更新 MMU和cache详解( ...

  8. 四路组相联原理_TLB的作用及工作原理

    TLB的作用及工作过程 以下内容摘自<步步惊芯--软核处理器内部设计分析>一书 页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令.数据需要访问两次内存:首先通过查询页表得 ...

  9. DHCP relay的工作过程以及DHCP option82的作用

    DHCP一家子(不包括DHCPv6)包括DHCP Client.DHCP Server.DHCP Relay以及DHCP Snooping,之后我会一个个详细学习之后发出来.今天讲述一下DHCP re ...

  10. 计算机网络中 中继器的作用是,一个动画看懂网络原理之中继器工作过程

    一个动画看懂网络原理之中继器工作过程 我们在学习计算机网络技术时,涉及到网络设备时,书本上往往在介绍网卡之后,就会给大家介绍中继器,那么中继器是什么,它的作用是什么,它的工作过程又是怎样的,下面就这些 ...

最新文章

  1. matlab clabel函数用法,CLabel的用法 | 学步园
  2. 涨姿势 | 服务重启后,为什么发生抖动?
  3. [css] 如何让一个块元素绝对居中?
  4. 漫画 | 让设计师崩溃的十个瞬间
  5. The word is not correctly spelled问题解决
  6. react打包后图片丢失_宜信技术实践|指尖前端重构(React)技术调研分析
  7. 从模糊搜索 1.0 到 3.0 的算法迭代历程 | 技术头条
  8. 点击微信网页的a标签直接跳转到淘宝APP打开怎么实现的?附:动图演示效果
  9. 类似京东商城筛选模块
  10. 知识图谱构建技术总述
  11. 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
  12. html中的flv视频播放器
  13. 离散数学 集合的运算
  14. 鲁大师11月新机排行:只有5款机型发布,OPPO撑起榜单
  15. vue中wath的源码实现
  16. poj1753Flip Game
  17. word文档中插入公式的技巧--利用表格
  18. 跨域请求的API接口
  19. 不入小程序,则为大笨熊
  20. OpenCV-计算平均值cv::mean

热门文章

  1. 一个简单的音乐播放器(实现上一曲下一曲,和自动播放)
  2. 时值年末,年度CSDN小峯的回顾过去的2020年(推荐)
  3. 用C语言解9×9数独 (亲测可用)(思路分析)
  4. 集成电路将成一级学科,这些高校迎来重大机遇!
  5. Firebug教你玩转网页小把戏!
  6. 使用Arduino IED配合Blinker为ESP8266-01s烧写程序
  7. 视频帧差异视频卡顿检测
  8. oracle rac实现,炼数成金Oracle 12C RAC集群原理与管理实战 16课
  9. 高等数学知识点总结——导数定义及性质、微积分、泰勒展开、洛必达法则、函数单调性判断
  10. “海青杯”复赛群雄逐鹿,凡科为青年创业翱翔插上翅膀