要解决的问题:在不影响nginx正常运行的情况下,平滑升级。
前提:两个版本的nginx源码包,已经安装了其中一个低版本的nginx
nginx源码安装的步骤
-
通过 tar -zxf nginx源码安装包
-
进入到nginx解压目录下执行下面的配置命令
./configure --prefix=/usr/local/nginx
--sbin-path=/usr/local/nginx/sbin/nginx
--modules-path=/usr/local/nginx/modules
--conf-path=/usr/local/nginx/conf/nginx.conf
--error-log-path=/usr/local/nginx/logs/error.log
--http-log-path=/usr/local/nginx/logs/access.log
--pid-path=/usr/local/nginx/logs/nginx.pid
--lock-path=/usr/local/nginx/logs/nginx.lock -
使用 make && make install 对nginx进行编译和安装。
-
通过ps -ef | grep nginx 查看nginx 的pid
-
通过kill -9 Nginx的PID 将nginx进行停止
-
进入到nginx的安装目录的sbin目录下,通过./nginx 启动nginx
将nginx进行平滑升级的步骤:
-
将正在运行的nginx目录下的sbin目录下的nginx进行备份
cd /usr/local/nginx/sbin mv nginx nginxold -
将高版本nginx源码包解压,进入解压后的目录中,通过配置指令进行配置,命令如下:
./configure --prefix=/usr/local/nginx
--sbin-path=/usr/local/nginx/sbin/nginx
--modules-path=/usr/local/nginx/modules
--conf-path=/usr/local/nginx/conf/nginx.conf
--error-log-path=/usr/local/nginx/logs/error.log
--http-log-path=/usr/local/nginx/logs/access.log
--pid-path=/usr/local/nginx/logs/nginx.pid
--lock-path=/usr/local/nginx/logs/nginx.lock注意:在对低版本nginx升级时,高版本在执行配置命令的时候,配置要与安装低版本nginx 的配置一致。
-
执行完配置命令,在高版本nginx安装目录下执行make命令进行编译,然后将编译后生成的objs目录下的nginx复制到低版本nginx安装目录下的sbin目录中
make cd objs cp nginx /usr/local/nginx/sbin/ -
回到高版本nginx安装目录下,执行make upgrade 即可实现平滑升级。