1、什么是nginx
Nginx是一个高性能的HTTP和反向代理的web服务器,同时提供IMAP/PO
P/SMTP服务,
Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,
在BSD-like协议下发行,其特点是占用内存少,并发能力强,事实上nginx
的并发能力在同类型的网页服务器中表现较好。
nginx的热部署和其并发模型有着密不可分的关系,说白了,就是因为mas
ter进程的关系,当通知nginx重度配置文件的时候,master进程会进行语法
错误的判断,如果存在语法错误的话,返回错误,不进行装载,如果配置
文件中没有错误,那末nginx也不会将新的配置文件调整到所有的worker中
,而是,先不改变已经建立链接的worker.等待worker将所有请求结束之后
,将原先在旧的配置下启动的worker杀死,然后使用新的配置建立新的wo
eker。
(这里我们使用的是nginx-1.15.8的压缩包)
进行压缩包的解压和相关软件的安装
tar zxf nginx-1.15.8.tar.gz ###进行压缩包的解压
进行vim文件的复制使之配置文件进行高亮显示(进行语法的纠错)
make .vim ###进行隐藏文件的建立
cp /mnt/nginx-1.15.8/contrib/vim/* .vim/ ###进行文件的复制
进行debug日志的关闭(如果debug日志开启将会导致产生大量的日志,使其过多的占用内存)
vim /mnt/nginx-1.15.8/auto/cc/gcc ###进行debug日志的关闭
进行编译时软件依赖性的安装
yum install pcre-devel zlib-devel gcc -y ###进行软件依赖性的安装
进行nginx源码的编译
./configure --prefix=/usr/local/nginx --with-file-aio ###进行源码的编译
进一步进行编译
make ###进一步进行编译
进行软件的安装
make install ###进行软件的安装
进行nginx用户的创建,并进行nginx配置稳健的编辑(使nginx服务可以使用nginx用户进行管理)
useradd nginx ###进行用户的建立
vim /usr/local/nginx/conf/nginx.conf ###进行配置文件的编辑
进行服务配置文件语法的检查
/usr/local/nginx/sbin/nginx -t ###进行服务的配置文件的检查
/usr/local/nginx/sbin/nginx ###进行服务的开启
netstat -antlp | grep nginx ###进行服务端口的查看
使用浏览器进行访问,看服务是否能够正常运行
在不停止服务的情况下进行服务的升级
这里我们选择的升级版本为nginx-1.16.0
进行软件包的解压
tar zxf nginx-1.16.0.tar.gz ###进行软件包的解压
进行debug日志的关闭
vim /mnt/nginx-1.16.0/auto/cc/gcc ###进行debug日志的关闭
进行软件的编译(编译参数和上一个版本一致)
./configure --prefix=/usr/local/nginx --with-file-aio ###进行源码的编译
进行软件的进一步编译
make ###进行软件的进一步编译
进行版本nginx-1.15.8二进制文件的备份(当服务升级失败后保证旧的服务依然可以继续工作)
cd /usr/local/nginx/sbin ###进入到二进制所在文件夹
co nginx nginx.old ###进行二进制文件的备份
查看未升级前的nginx的版本
/usr/local/nginx/sbin/nginx -V ###查看工作状态下nginx的版本
将nginx-1.15.8的二进制文件使用nginx-1.16.0进行强制覆盖
cp -f nginx /usr/local/nginx/sbin/nginx ###进行二进制文件的强制覆盖
ps ef | grep nginx ###进行进程的查看
设定旧的服务不再接收用户请求(下线),新服务启动子进程接收用户请求(上线)
kill -USR2 3760 ###设定新的子进程开始接收用户的访问请求,旧的不再九首用户的访问请求
ps -ef | grep nginx ###进行进程的查看
进行旧服务的进程关闭
kill -WINCH 3760 ###进行旧服务进程的关闭
ps -ef | grep nginx ###进行进程的查看
进行服务版本的查看
/usr/local/nginx/sbin/nginx -V ###进行nginx版本号的查看
当服务升级失败后进行版本的回调
进行二进制文件的强行覆盖
cp -f nginx.old nginx ###进行二进制文件的强行覆盖
ps -ef | grep nginx ###进行nginx服务进程的查看
进行配置文件的动态更新
kill -HUP 3760 ###进行配置文件的动态更新
ps -ef | grep nginx ###进行服务进程的查看
让新版本的服务停止接收用户请求
kill -USR2 15900 ###设定新升级的版本不再接收用户请求
ps -ef | grep nginx ###进行服务进程的查看
进行原始版本子进程的拉起
kill -WINCH 15900 ###进行新版服务的拉起
ps -ef | grep nginx ###进行服务进程的查看
进行回退后版本的查看
/usr/local/nginx/sbin/nginx -V ###进行服务版本的查看
进行新版本进程的查看,并且进行进程的关闭
ps ax | grep nginx ###进行服务进程的查看
kill -9 15900 ###进行新版服务进程的结束
使用浏览器进行访问