一、先升级OpenSSL
先升级openssl到1.1.1k版本
#将openssl-1.1.1k.tar.gz perl-5.36.1.tar.gz new_nginx-1.20.2.tar.gz 都放opt目录下
1. 安装对应的依赖库
yum install zlib-devel openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
2. 解压安装openssl,并进入openssl的目录
tar -zxvf openssl-1.1.1k.tar.gz
cd /opt/openssl-1.1.1k
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN.UTF-8
./config --prefix=/usr/local/openssl shared zlib
sudo make && make install
3. 备份当前openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
4. 配置使用新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
5. 更新动态链接库数据并重新加载
echo /usr/local/openssl/lib >> /etc/ld.so.conf
ldconfig -v
6. 查看是否升级成功
openssl version
7. 如果缺少libssl.s0.1.1
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
二、如有需要 安装perl
wget https://www.cpan.org/src/5.0/perl-5.36.1.tar.gz
tar -xzf perl-5.36.1.tar.gz
cd /opt/perl-5.36.1
./configure -des -Dprefix=/usr/local/localperl
make
make test
make install
三、nginx 安装与启动
tar -zxf new_nginx-1.20.2.tar.gz -C /usr/local
cd /usr/local
mv nginx1.20.2 nginx
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-openssl=/opt/openssl-1.1.1k
make && make install
启动
cd /usr/local/nginx/sbin
./nginx
配置环境变量
在/etc/profile 中加入:
export NGINX_data=/usr/local/nginx
export PATH=$NGINX_data/sbin:$PATH
执行
source /etc/profile ,使配置文件生效。
查看版本以及查看编译时所加的模块配置
nginx -V
编译报错解决方案:
1.cc: 错误:/opt/openssl-1.1.1k/lib/libssl.a:没有那个文件或目录,
cc: 错误:/opt/openssl-1.1.1k/lib/libcrypto.a:没有那个文件或目录
解决方案:
手动创建该文件夹和下面的lib子目录,然后将解压后的安装包里面的libssl.a libcrypto.a手动放到lib下面去,然后在执行make命令就OK了
2.cp: “conf/koi-win” 与"/usr/local/nginx/conf/koi-win" 为同一文件
解决方案:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-openssl=/opt/openssl-1.1.1k --conf-path=/usr/local/nginx/nginx.conf
后再重新编译