一、查看系统环境
# cat /etc/redhat-release
CentOS release 6.7 (Final)
# uname -r
2.6.32-573.el6.x86_64
# uname -m
x86_64
二、编译安装nginx-1.8.1.tar.gz
1、安装编译器及相关工具
# yum install gcc gcc-c++ autoconf automake -y
2、安装模块依赖的库
# yum install zlib-devel openssl-devel pcre-devel -y
3、创建Nginx管理用户
# useradd -s /sbin/nologin -M nginx
4、下载nginx-1.8.1.tar.gz
# wget http://nginx.org/download/nginx-1.8.1.tar.gz
5、解压并编译安装
# tar zxf nginx-1.8.1.tar.gz
# cd nginx-1.8.1
# ./configure \
--prefix=/application/nginx-1.8.1 \
--user=nginx \
--group=nginx \
--with-http_ssl_module
# make && make install
# ln -s /application/nginx-1.8.1/ /application/nginx
# cd ../
6、启动Nginx
# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.8.1/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.8.1/conf/nginx.conf test is successful
# /application/nginx/sbin/nginx
# ss -lntup|grep nginx
tcp LISTEN 0 511 *:80 *:* users:(("nginx",3597,6),("nginx",3598,6))
# ps -ef|grep nginx|grep -v grep
root 3597 1 0 23:41 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 3598 3597 0 23:41 ? 00:00:00 nginx: worker process
# ls /application/nginx/logs/
access.log error.log nginx.pid
三、平滑升级nginx-1.10.1.tar.gz
1、备份旧的可执行文件
# cp /application/nginx/sbin/nginx /application/nginx/sbin/nginx.old
2、下载nginx-1.10.1.tar.gz
# wget http://nginx.org/download/nginx-1.10.1.tar.gz
3、解压并按照旧的安装目录编译安装新的程序
# tar zxf nginx-1.10.1.tar.gz
# cd nginx-1.10.1
# ./configure \
--prefix=/application/nginx-1.8.1 \
--user=nginx \
--group=nginx \
--with-http_ssl_module
# make && make install
# cd
4、平滑升级可执行程序,旧的.pid文件重命名.pid.oldbin
# kill -USR2 3597
# ls /application/nginx/logs/
access.log error.log nginx.pid nginx.pid.oldbin
5、重新执行可执行文件,依次启动新的主进程和工作进程
# /application/nginx/sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
# ps -ef|grep nginx|grep -v grep
root 3597 1 0 23:41 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 3598 3597 0 23:41 ? 00:00:00 nginx: worker process
root 6022 3597 0 23:45 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 6023 6022 0 23:45 ? 00:00:00 nginx: worker process
6、从容关闭旧的工作进程
# kill -WINCH 3597
# ps -ef|grep nginx|grep -v grep
root 3597 1 0 23:41 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
root 6022 3597 0 23:45 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 6023 6022 0 23:45 ? 00:00:00 nginx: worker process
7、此时,可以决定是还原旧的版本,还是继续升级
1)若继续升级,则从容关闭旧的主进程
# kill -QUIT 3597
# ps -ef|grep nginx|grep -v grep
root 6022 1 0 23:45 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 6023 6022 0 23:45 ? 00:00:00 nginx: worker process
# ls /application/nginx/logs/
access.log error.log nginx.pid
2)若想退回老版本,则
kill -HUP 旧的主进程号:Nginx将在不重载配置文件的情况下启动它的工作进程;
kill -QUIT 新的主进程号:从容关闭其工作进程;
新的主进程退出后,旧的主进程会移除 .oldbin 前缀,恢复为 .pid 文件,这样,一切就都恢复到升级之前了。
相关推荐
本文将指导你如何平滑升级 Nginx 版本,确保服务器保持高性能和高可用性。LNMP 介绍、Linux 操作系统、Nginx Web 服务器、MySQL/MariaDB 数据库服务器和 PHP/Python/Perl 等开发语言的相关知识点如下: LNMP 介绍 ...
平滑升级Nginx还有其他方法,如使用`nginx -s reload`命令重新加载配置,但这种方法要求新旧版本的Nginx二进制文件兼容。在某些情况下,直接替换二进制文件是更安全的选择。 在整个升级过程中,监控系统日志和...
在 Linux 系统上升级 Nginx 版本 Nginx 是一个流行的开源 Web 服务器软件,可以运行在多种操作系统上,其中包括 Linux。随着 Nginx 的不断更新和发展,升级 Nginx 版本成为一个不可避免的问题。本文将指导您在 ...
### CentOS 7 下 Nginx 从 1.12 版本平滑升级到 1.14 的详细步骤 #### 一、背景介绍 Nginx 是一款广泛使用的高性能 HTTP 和反向代理 Web 服务器,同时也提供 IMAP/POP3/SMTP 服务。在 CentOS 7 上通过源码安装的 ...
nginx 1.8 平滑升级到 1.11.2 本文档旨在介绍如何将 nginx 1.8 版本平滑升级到 1.11.2 版本。平滑升级是指不停机升级,保证服务不中断的升级方式。 在开始升级之前,我们需要了解当前 nginx 的版本信息。使用命令 ...
nginx平滑升级
本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...
**Nginx 平滑升级过程详解** 在 IT 领域,特别是在 Web 服务器管理中,保持软件的更新和安全至关重要。Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于网站服务。当有新版本发布时,平滑升级 Nginx 可以...
nginx平滑升级,不停止在线应用,支持升级到1.2.4版本
### Linux系统源码编译安装升级Nginx版本 #### 升级背景及原因 在当前信息化社会中,Web服务器的安全性尤为重要。Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于互联网架构中。然而,即便是如此优秀...
- 另外,还可以通过其他信号如`QUIT`(终止所有worker进程)、`USR1`(重新打开日志文件)和`USR2`(平滑升级Nginx到新版本)来管理Nginx进程。 4. 相关概念: - 信号:Nginx通过信号系统与操作系统交互,控制...
进行Nginx平滑升级之前,需要下载新的Nginx源码包并编译安装,但在此过程中需要注意的是,不应直接使用make install命令,因为这会导致旧版本的Nginx被新的二进制文件替换掉,无法实现平滑升级。正确的做法是编译...
nginx 的平滑升级.md
今天,我们来聊一聊,在企业实际生产环境中经常遇到的一个情况,升级Nginx到新的版本和如何回滚至旧版本。 1、环境介绍 今天准备的两个nginx版本如下: [root@nginx ~]# cd /download/nginx/ [root@nginx nginx]# ...
Nginx-平滑升级(MD笔记)
在这个过程中,平滑重启和升级Nginx服务显得尤为重要,以确保在更新的过程中不会中断对外提供服务。 在Nginx的配置文件nginx.conf中,我们可能会做出修改,比如优化性能、增加新的模块、更改代理设置等。在这些配置...
在本文中,我们将详细探讨如何进行Nginx 1.8.0版本到1.9.7版本的平滑升级过程。平滑升级是确保Web服务器在不中断服务的情况下更新软件的重要方法,这对于保持系统安全性和性能至关重要。 首先,确认当前运行的Nginx...