Nginx是一个功能强大的web服务器和负载均衡软件,由俄罗斯人开发。Nginx包括一个master进程和数个worker进程,master进程用于读取、解析配置文件和管理worker进程,worker进程实际处理请求。nginx实现了基于事件的模型和操作系统机制驱动的请求分发。

Nginx的各种功能以模块(module)的形式提供,只有在编译安装时可以选择安装或不安装哪些模块,在源码编译后,或通过linux软件管理包工具安装nginx,不能再加载或去除模块。

可以用 nginx -V 命令来查看配置目录和prefix目录,配置文件可以在编译时单独指定,也可以在启动时指定,如果没有指定配置文件,那么默认配置文件为prefix目录下的conf/nginx.conf。例如,prefix目录为“/usr/local/nginx”,没有指定配置文件,那么默认情况,nginx的配置文件是“/usr/local/conf/nginx.conf”。

yum或者apt-get软件包管理工具安装的,配置文件通常是/etc/nginx/nginx.conf。

启动

直接运行nginx可执行文件即可启动,nginx会自动读取配置文件目录下的“nginx.conf”配置文件,也可以在后面接“-c”参数来指定配置文件:

nginx -c /path/to/configfile

由于nginx的配置文件比较复杂容易出错,修改配置后可以用“-t”参数来校验配置文件是否正确:

nginx -t    # 校验默认的配置文件
nginx -t -c /path/to/configfile # 校验指定配置文件

-T参数除了校验配置文件外,还同时将完整的配置文件打印到标准输出(1.9.2以后版本支持)。

-g directives:设置全局指令,优先级高于配置文件。

-p prefix:制定prefix目录,默认是/usr/local/nginx。

停止和重载

当nginx启动后,可以使用“-s”参数向nginx管理进程发送信号来控制nginx:

nginx -s signal

其中,signal可以是以下值:

  • stop:快速关闭
  • quit:安全关闭
  • reload:重载配置文件
  • reopen:重新打开一个log文件,用于日志切割

quit信号通知nginx等待worker进程处理完当前的请求后退出,此命令只能由启动nginx的linux账户来执行。

reload信号通知nginx重新载入配置文件,除了实用reload外,nginx只会在启动时载入一次配置文件,之后对配置文件的修改不会对已经运行的nginx进程生效。当运行这个命令时,master进程会尝试读取配置文件,如果配置文件没有问题,master进程会启动新的worker进程来运行新的配置文件并处理请求,并且通知老的worker进程不再处理新的请求并在处理完当前任务后退出。如果配置文件存在问题不能执行,master进程会回退老配置文件继续工作,不会导致nginx进程整个异常退出。

linux的kill命令也可以达到相同的作用,我们假设nginx的master进程号(pid)是1234,那么 kill -s QUIT  和 kill -s HUP 这两条命令和前面quit、reload的作用相同。

master进程的pid保存在pid文件中,如果编译时没有指定,那么默认的pid文件位于prefix目录下logs文件夹中,即“prefix/logs/nginx.pid”,prefix目录的问题请看文章前部。

以上内容大部分翻译自nginx官方文档http://nginx.org/en/docs/

果觉得本文对您有帮助,请扫描后面的二维码给予捐赠,您的支持是作者继续写出更好文章的动力!

Nginx实用教程(一):启动、停止、重载配置的更多相关文章

  1. nginx 命令行参数 启动 重启 重载 停止

    今天和大家分享关于 nginx 的一些参数使用 首先,你应该安装了nginx CentOS 安装 nginx 这是很早之前的一篇博客,可以参考. 之前,我们如何去操作 nginx ##简单粗暴法 pk ...

  2. Nginx实用教程(二):配置文件入门

    Nginx配置文件结构 nginx配置文件由指令(directive)组成,指令分为两种形式,简单指令和区块指令. 一条简单指令由指令名.参数和结尾的分号(;)组成,例如: listen backlo ...

  3. Windows下Nginx的下载安装、启动停止和配置浏览

    前言: 记录一下今天在Windows下载安装Nginx服务器的过程.因为网上关于Nginx的资料都太复杂了,大多数是在Linux下使用的方法. 1.下载 Nginx官网下载地址:http://ngin ...

  4. 【nginx】常用命令 启动|停止|重启|重新读取配置-centOS7

     查看服务的当前状态 (flaskApi) [root@67 goTest]# systemctl status nginx.service ● nginx.service - The nginx H ...

  5. Squid 启动/停止/重载配置文件 命令

    当你的 squid.conf 配置文档按照你的想法修改完以后,启动 squid 之旅就开始了. Squid安装设试命令: 1,初始化你在 squid.conf 里配置的 cache 目录 #/usr/ ...

  6. 【运维技术】Nginx安装教程(yum安装,源码编译)

    安装方式 yum直接更新源安装 源码直接编译之后安装 使用yum进行直接安装 Installing a Prebuilt CentOS/RHEL Package from an OS Reposito ...

  7. nginx的启动、停止、重载配置、验证配置

    [1]启动 启动nginx系统方式: (1)命令 nginx -c /usr/local/nginx/conf/nginx.conf 说明:-c 参数指定运行nginx系统的自定义配置文件. 若加:使 ...

  8. nginx 的安装、启动、停止与重启

    一.nginx 基本介绍 1.Nginx 是单进程单线程模型,也就是启动的工作进程只有一个线程响应客户端请求,而 apache 可以在一个进程内启动多个线程响应客户端请求.所以 nginx 的内存占用 ...

  9. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

随机推荐

  1. Vue 自定义图片懒加载指令v-lazyload

    Vue是可以自定义指令的,最近学习过程中遇见了一个需要图片懒加载的功能,最后参考了别人的代码和思路自己重新写了一遍.以下将详细介绍如何实现自定义指令v-lazyload. 先看如何使用这个指令: &l ...

  2. 学习java的感受

    学习java有一段时间了,发现现在只是才了解java,还在门槛外边. 有时候真感觉这是不是一种外星语言,各种方法各种类各种借口,总是傻傻分不清.  学过的知识过一个星期就开始模糊,有时半夜睡不着的时候 ...

  3. Omi树组件omi-tree编写指南

    Omi框架能够以少量的代码声明式地编写可拖拽移动节点的树形组件. 通常树组件能够考验UI框架的健壮性,因为需要使用到UI框架的如下特性: 组件嵌套 组件传值 组件批量传值 组件依赖自身递归嵌套(nes ...

  4. 前端工作日常爬坑之——单页面微信开发Jssdk相关,以及jssdk图片直传自己服务器的实现。

    日常爬坑 遇到的情况大致说明: 项目基于Vue2全家桶实现,vue-router控制前端路由,路由模式是History(主要是领导追求太高,觉得hash带#号太丑,然后遇到了小坑...),主要是服务于 ...

  5. C#控制台程序使用Log4net日志组件

    1.Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比如C#控制台程序和C# MVCWeb项目,拿控制台项目为例   项目源码在文章底部 2.首先创建一个控制台程序,引入Log4n ...

  6. iOS关于Cookie验证登录状态

    1.第一次进入应用,登录获取Cookie,此时如果用到的是AFN去获取接口数据,Cookie已经写入了,所以无需处理,每次请求的时候,会自动将该cookie传给后台去验证 2.将Cookie缓存到本地 ...

  7. java文件的读写操作

    java文件的读写操作主要是对输入流和输出流的操作,由于流的分类很多,所以概念很容易模糊,基于此,对于流的读写操作做一个小结. 1.根据数据的流向来分: 输出流:是用来写数据的,是由程序(内存)--- ...

  8. python3 time模块与datetime模块

    time模块 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平 ...

  9. 微信创建带参数二维码并加上logo

    1.因为带参数二维码有两种,分别是字符参数,数值参数,因此,在写创建方法的时候,需要进行判断 public void ShowQcCode(N_WX_QrCode code) { QRCodeCrea ...

  10. java之反射

    初学反射,也是第二次写博客了把,就简单记录一下. Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对 ...