一、先升级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

后再重新编译