Nginx启动、停止、平滑升级

欢迎访问我的博客,同步更新: 枫山别院
说一说Nginx的安装、启动、停止

Nginx的安装

1、Linux上

  • 在Linux上安装Nginx时需要一些最小化的支撑组件,首先要保证系统中有这些组件,安装命令如下(以CentOS为例):
    yum -y install make zlib zlib-devel gcc gcc-c++ ssh libtool pcre pcre-devel
    上面的make,zlib,zlib-devel,gcc,gcc-c++,ssh,libtool都是选择安装的,缺什么安装什么即可
    检查安装过的包命令如下:
    yum list installed | grep "软件名或者包名"

  • 下载Nignx安装包,点击Nginx官网下载最新版,可以使用wget命令直接下载到Linux或者使用FTP上传。

  • 解压安装包tar -zvf nginx-1.13.6.tar.gz

  • 安装,命令如下:
    ./configure
    如果报错:the HTTP rewrite module requires the PCRE library
    那么你需要安装上PCRElib,之后再执行./configure,之后执行make命令编译Nginx,编译完成之后,你可以再执行make install即可安装到指定位置(默认位置/usr/local/nginx)。使用参数--prefix=/nginx可以指定安装位置,比如安装到/nginx目录下,完整的命令就是./configure --prefix=/nginx

  • 一般直接运行nginx命令即可启动Nginx,配置文件默认会使用conf目录下面的nginx.conf,下面几个命令你也许会常用到:
    nginx -c 配置文件路径:使用指定的配置文件启动
    nginx -t 配置文件路径:检查配置文件是否正确并退出
    nginx -s reload:重新加载配置文件
    nginx -s stop:停止Nginx
    nginx -v:打印版本号并退出
    nginx -V:打印版本号和配置并退出
    2、在Windows上安装比较简单,下载编译好的包即可,就不说了

好了,Nginx的一点基本使用已经说完了,下面是一些高级点的东西


  • Nginx服务的信号控制
    Nginx在启动之后会分为主进程(master process)和一个及以上工作线程(worker process),我们只要给主进程发送信号就可以对Nginx进行一些控制。
    在发送信号的时候使用kill命令,那么我们需要知道Nginx主进程的PID,查询PID可以使用命令ps -ef |grep nginx就会看到如下图:
    PID.png

    红框里的就是PID了
    命令有两种方式:
    1、kill 信号 PID
    2、nginx -g 信号
    支持的常用信号如下:
信号 描述
TERM或INT 快速停止Nginx服务
QUIT 平缓停止Nginx服务
HUP 使用新的配置文件启动Nginx,之后平缓停止原有进程,也就是平滑重启
USR2 使用新版Nginx文件启动,之后平缓停止原有Nginx,也就是平滑升级
WINCH 平缓停止Nginx工作线程,用于平滑升级
  • 案例
    1、快速停止Nginx
    快速停止是指立即放弃当前工作,停止服务;当前也可以使用kill -9 PID
    nginx -g TERM或者nginx -g INT
    2、平缓停止Nginx
    平缓停止是指将当前请求处理完毕之后不再接受新请求,然后停止服务。
    nginx -g QUIT
    3、Nginx平滑重启
    如果你修改了配置文件,想要使用新的配置,但是又不想Nginx停止服务,这时你可以使用平滑重启。平滑重启时先读取配置文件,如果有错误那么就显示错误,停止平滑重启,继续使用原服务;如果配置正确那么启动新服务,平缓关闭原服务。
    nginx -g HUP
    可以添加-c 新配置文件路径来指定使用新的配置文件平滑重启,完整命令如下:
    nginx -g HUP -c 新配置文件路径
    4、Nginx平滑升级
    首先你需要安装新版本的Nginx,安装路径必须跟原来的Nginx一样。安装之前请务必备份原有的Nginx。如果不能保持路径一致那么可以将新版本的Nginx安装在其他位置,然后在原Nginx中使用命令nginx -p 新版本的Ngixn安装位置将原有Nginx指定到新的位置。
    第一步,使用命令nginx -g USR2发送平滑升级信号,使用命令ps -ef |grep nginx查看新的Nginx服务是否启动
    第二步,如果新服务启动成功,使用命令nginx -g WINCH来停止原有服务
  • 今日强心剂:

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经。
加油吧,少年!

转载请注明出处,谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。