CentOS无缝升级nginx[完整命令及自动升级脚本]

简介: 这两天网站的服务器总是出现 503,ssh 进去用 top 命令看了一下似乎也没有特别严重的资源消耗,加上最近看到 nginx 又爆出很多漏洞,看着现在服务器上老版本的 nginx 我倒吸了一口凉气,决定升级。

这两天网站的服务器总是出现 503,ssh 进去用 top 命令看了一下似乎也没有特别严重的资源消耗,加上最近看到 nginx 又爆出很多漏洞,看着现在服务器上老版本的 nginx 我倒吸了一口凉气,决定升级。

先交代一下本次升级的环境:

  • 系统: CentOS 5.9   32位
  • nginx 安装位置: /usr/local/nginx(不同的主机安装位置不同,使用以下代码时请注意做必要的替换

手动升级

按照如下方法一步步下载、编译、替换 nginx 即可完成升级,对现有的 nginx 配置文件不会造成任何影响。

首先要做的当然是备份了,我采用的备份方法是将 nginx 目录下的所有文件打包压缩为一个名为 nginx.tar.gz 的文件

tar -zcvf nginx.tar.gz /usr/local/nginx/.

然后远程下载最新稳定版的 nginx

wget http://nginx.org/download/nginx-1.4.1.tar.gz

 Nginx 下载地址

将下载好的文件解压缩

tar -zxvf nginx-1.4.1.tar.gz

解压后得到目录 nginx-1.4.1,进入该目录

cd nginx-1.4.1

接下来我们需要编译 nginx 的源码,在编译之前确保你的主机安装了必须的编译工具

yum install gcc openssl-devel pcre-devel zlib-devel

如果你不清楚编译时的选项,可以参考现有 nginx 的编译选项,查看方法

/usr/local/nginx/sbin/nginx -V

得到结果如下

nginx version: nginx/某版本号  
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-54)  
TLS SNI support disabled  
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6

其中 configure arguments 就是当前运行的 nginx 编译时的命令,找到这些命令后我们开始编译新的 nginx

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 && make

编译完成后,在当前目录的 objs 目录下就是我们需要的 nginx 可执行文件了,只需覆盖即可完成升级。在覆盖老版本的 nginx 之前,首先将其重命名以免无法覆盖

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

然后将新编译好的 nginx 复制到 nginx 的目录中

cp objs/nginx /usr/local/nginx/sbin/nginx

最后重启 nginx 完成升级

/usr/local/nginx/sbin/nginx -s reload

使用上面介绍过的命令查看 nginx 版本,显示为 1.4.1。

自动升级

如果你使用了 lnmp 一键包的安装环境(lnmp.org),可以考虑直接使用写好的 nginx 自动升级 shell 脚本。

将脚本下载到本地并执行该脚本

wget soft.vpser.net/lnmp/upgrade_nginx.sh;sh upgrade_nginx.sh

输入你想要升级的版本号,比如 1.4.1 或 1.5.0 然后脚本就会自动进行备份及升级工作了,原理与上述「手动升级」代码一致。

本文转载自https://undefinedblog.com/seamlessly-upgrade-nginx-on-centos/      感谢作者的分享。

目录
相关文章
|
1月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
146 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
62 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
21天前
|
安全 Linux 网络安全
centos7中firewall防火墙的常用命令总结
以上命令集覆盖了 `firewalld`的基本操作,是维护CentOS 7系统安全不可或缺的工具。对于更高级的配置需求或遇到特定问题
18 3
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
1月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
1月前
|
应用服务中间件 Linux nginx
Linux下操作Nginx相关命令
Linux下操作Nginx相关命令
|
1月前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
2月前
|
网络协议 Linux Shell
CentOS7系统命令学习笔记(一)
CentOS7系统命令学习笔记(一)
|
2月前
|
Linux
CentOS7系统命令学习笔记(二)
CentOS7系统命令学习笔记(二)
|
2月前
|
Linux Shell API
CentOS7系统命令学习笔记(三)
CentOS7系统命令学习笔记(三)