LNMP升级Nginx和Openssl到最新版

好吧,强迫症又犯了。是该折腾点什么,但是站点是静态站点,能折腾的地方没有动态站点的多,就想着把服务器的LNMP一键包的底层升级一下,于是查看了Nginx和Openssl的版本…

查看Nginx和Openssl版本号:

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

再去Nginx官网和Openssl官网看了一下,版本上有一些差距。Nginx更是同时发布了两个更新:Nginx 于近日同时为稳定版和主线版两个分支发布了更新,分别是 Nginx-1.16.1 和 Nginx-1.17.3。主要修复了在 HTTP/2 中的安全漏洞 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516)。对于强迫症的我,怎么能忍受。奈何自己是半吊子水平,参照网上的文章,慢慢摸索下,终于把Nginx和Openssl升级到最新版。

博主用的是LNMP一键包,这里就以军哥LNMP一键包为安装环境,将Nginx和Openssl升级到最新版进行讲解,使用LNMP的站长们都可以参考一下。

通过ssh登录到vps,手动进入你LNMP目录下的src目录(这里以我的安装目录为例):

 cd ~/lnmp1.6/src  

下载并解压 OpenSSL1.1.1d

 wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1d.tar.gz && tar -xzvf openssl-1.1.1d.tar.gz && rm -rf openssl-1.1.1d.tar.gz  

修改 include 目录中的 upgrade_nginx.sh 文件

 vi ~/lnmp1.6/include/upgrade_nginx.sh

修改下面这段代码:

 if [[ "${Nginx_Ver_Com}" == "0" ||  "${Nginx_Ver_Com}" == "1" ]]; then
    ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module ${Nginx_With_Openssl} ${Nginx_Module_Lua} ${NginxMAOpt} ${Nginx_Modules_Options}
else
    ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module ${Nginx_With_Openssl} ${Nginx_Module_Lua} ${NginxMAOpt} ${Nginx_Modules_Options}
fi  

else之后的${Nginx_With_Openssl}改成–with-openssl=../src/openssl-1.1.1d 即可。修改完成后,ESC键输入:wq保存并退出。

接下来给予upgrade_nginx.sh文件执行权限。

  chmod +x upgrade_nginx.sh

升级 Nginx

 cd ~/lnmp1.6
 ./upgrade.sh nginx  

这里会弹出一个提示,要求输入升级的 Nginx 版本号。

Nginx输入版本号

当前我的 Nginx 版本为1.4.1,官方主线版本最新版本为1.17.3,直接输入新的版本号 1.17.3按回车键确定,接下来就是等待其自动编译安装完成。

编译完成后,检查一下OpensslNginx版本号对不对的上

  nginx -V

重启LNMP运行环境:

 lnmp restart