欢迎访问我的博客,同步更新: 枫山别院
说一说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了
命令有两种方式:
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
来停止原有服务
-
今日强心剂:
你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经。
加油吧,少年!
转载请注明出处,谢谢!