`
红星照耀我战斗
  • 浏览: 1472 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

平滑升级Nginx

阅读更多

一、查看系统环境

# 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 文件,这样,一切就都恢复到升级之前了。

0
0
分享到:
评论

相关推荐

    教你平滑升级Nginx版本.docx

    本文将指导你如何平滑升级 Nginx 版本,确保服务器保持高性能和高可用性。LNMP 介绍、Linux 操作系统、Nginx Web 服务器、MySQL/MariaDB 数据库服务器和 PHP/Python/Perl 等开发语言的相关知识点如下: LNMP 介绍 ...

    CentOS 7 nginx平滑升级.pdf

    平滑升级Nginx还有其他方法,如使用`nginx -s reload`命令重新加载配置,但这种方法要求新旧版本的Nginx二进制文件兼容。在某些情况下,直接替换二进制文件是更安全的选择。 在整个升级过程中,监控系统日志和...

    在linux系统上升级nginx版本

    在 Linux 系统上升级 Nginx 版本 Nginx 是一个流行的开源 Web 服务器软件,可以运行在多种操作系统上,其中包括 Linux。随着 Nginx 的不断更新和发展,升级 Nginx 版本成为一个不可避免的问题。本文将指导您在 ...

    centos7-Nginx从1.12平滑升级到1.14

    ### CentOS 7 下 Nginx 从 1.12 版本平滑升级到 1.14 的详细步骤 #### 一、背景介绍 Nginx 是一款广泛使用的高性能 HTTP 和反向代理 Web 服务器,同时也提供 IMAP/POP3/SMTP 服务。在 CentOS 7 上通过源码安装的 ...

    nginx1.8平滑升级

    nginx 1.8 平滑升级到 1.11.2 本文档旨在介绍如何将 nginx 1.8 版本平滑升级到 1.11.2 版本。平滑升级是指不停机升级,保证服务不中断的升级方式。 在开始升级之前,我们需要了解当前 nginx 的版本信息。使用命令 ...

    nginx平滑升级

    nginx平滑升级

    Centos7环境下Nginx版本升级方式及步骤

    本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...

    详解nginx平滑升级的过程

    **Nginx 平滑升级过程详解** 在 IT 领域,特别是在 Web 服务器管理中,保持软件的更新和安全至关重要。Nginx 是一款高性能的 HTTP 和反向代理服务器,广泛应用于网站服务。当有新版本发布时,平滑升级 Nginx 可以...

    nginx的平滑升级

    nginx平滑升级,不停止在线应用,支持升级到1.2.4版本

    Linux系统源码编译安装升级Nginx版本

    ### Linux系统源码编译安装升级Nginx版本 #### 升级背景及原因 在当前信息化社会中,Web服务器的安全性尤为重要。Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于互联网架构中。然而,即便是如此优秀...

    Nginx基本原理

    - 另外,还可以通过其他信号如`QUIT`(终止所有worker进程)、`USR1`(重新打开日志文件)和`USR2`(平滑升级Nginx到新版本)来管理Nginx进程。 4. 相关概念: - 信号:Nginx通过信号系统与操作系统交互,控制...

    Nginx平滑升级的详细操作方法

    进行Nginx平滑升级之前,需要下载新的Nginx源码包并编译安装,但在此过程中需要注意的是,不应直接使用make install命令,因为这会导致旧版本的Nginx被新的二进制文件替换掉,无法实现平滑升级。正确的做法是编译...

    nginx 的平滑升级.md

    nginx 的平滑升级.md

    1分钟搞定Nginx版本的平滑升级与回滚的方法

    今天,我们来聊一聊,在企业实际生产环境中经常遇到的一个情况,升级Nginx到新的版本和如何回滚至旧版本。 1、环境介绍 今天准备的两个nginx版本如下: [root@nginx ~]# cd /download/nginx/ [root@nginx nginx]# ...

    Nginx-平滑升级(MD笔记)

    Nginx-平滑升级(MD笔记)

    nginx 平滑重启与升级的实现方法

    在这个过程中,平滑重启和升级Nginx服务显得尤为重要,以确保在更新的过程中不会中断对外提供服务。 在Nginx的配置文件nginx.conf中,我们可能会做出修改,比如优化性能、增加新的模块、更改代理设置等。在这些配置...

    Nginx1.8.0版本平滑升级新版本1.9.7

    在本文中,我们将详细探讨如何进行Nginx 1.8.0版本到1.9.7版本的平滑升级过程。平滑升级是确保Web服务器在不中断服务的情况下更新软件的重要方法,这对于保持系统安全性和性能至关重要。 首先,确认当前运行的Nginx...

Global site tag (gtag.js) - Google Analytics