网站首页 > 精选文章 / 正文
前段时间升级过openssl版本,但是最近发现nginx附带的openssl版本还是老版本,并没有随之升级。
正好顺便升级下nginx到最新稳定版,目前最新的稳定版是1.24.0
下载地址 https://nginx.org/download/nginx-1.24.0.tar.gz
我这台服务器可以直连外网,所以直接通过wget下载到服务器,没有外网的也可以参考我之前的方式
cd /opt
wget https://nginx.org/download/nginx-1.24.0.tar.gz
解压缩 tar -zxvf nginx-1.24.0.tar.gz
进入目录 cd nginx-1.24.0/
查看下现有nginx的配置 nginx -V
新编译的nginx也需要这么配置并加上新版openssl路径,具体位置可以参考我之前那篇
Centos7升级openssl版本 这里根据实际编译文件夹路径设置
--with-openssl=/opt/openssl-3.2.0
完整的配置
不过报错了
安装解决 yum -y install libxml2 libxml2-dev
继续报错
安装解决 yum -y install gd gd-devel
还报错
安装解决 yum -y install perl-ExtUtils-Embed
还是报错
安装解决 yum -y install google-perftools google-perftools-devel
配置完成,这个提示
通过make命令,不要make install
进入objs目录并查看编译后nginx程序有没有问题
cd objs
查看下程序兼容性,这里需要注意下文件路径
./nginx -t
这里因为新编译的nginx是基于openssl3.2.0私钥长度不能1024位,必须2048位,所以需要重新生成crt和key
这里简单描述下过程:进入报错目录 cd /home/xypmc/ssl
生成私钥 openssl genrsa -des3 -out ssl.key 2048
创建csr证书 openssl req -new -key ssl.key -out ssl.csr
去除密码 openssl rsa -in ssl.key -out ssl_nopwd.key
我这不需要带密码的私钥,直接覆盖了 mv ssl_nopwd.key ssl.key
生成crt证书 openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
回编译目录重新查看兼容性,没问题了
cd /opt/nginx-1.24.0/objs/
./nginx -t
查看编译后的nginx版本 ./nginx -V ,好了
两项测试都没问题开始升级,首先备份原始nginx程序
mv /usr/sbin/nginx /usr/sbin/nginx.bak
然后替换nginx二进制文件
cp -a /opt/nginx-1.24.0/objs/nginx /usr/sbin/nginx
替换完成后根据nginx配置文件查看得知 --pid-path=/run/nginx.pid
查看nginx进程 cat /run/nginx.pid
通过命令平滑升级 kill -USR2 28358 ,发现不起作用
等了半小时进程也没有变化,直接结束进程重启nginx,因为我编译二进制程序是已经带了配置文件路径所以直接启动就行
查看下版本 nginx -V
OVER!
Tags:nginx 版本
猜你喜欢
- 2025-01-10 Nginx从安装到高可用,一篇搞定
- 2025-01-10 nginx 之负载均衡
- 2025-01-10 Nginx 学习进阶(一):CentOS 下部署 Nginx
- 2025-01-10 Nginx 从安装到高可用入门教程
- 2025-01-10 Nginx 部署文档
- 2025-01-10 Nginx 中使用 Proxy Protocol 协议
- 2025-01-10 线上环境如何无感升级Nginx版本?
- 2025-01-10 linux(centos)yum安装nginx最新版及配置文件
- 2025-01-10 Nginx实战001:Window中配置使用Nginx入门
- 2025-01-10 Nginx 域名与证书配置详解