• openssl 版本冲突导致 nginx, uwsgi, mycli 的问题解决


    问题

    CentOS 7 默认安装的 nginx 依赖 openssl 版本为 v1.0.2k (需要手动安装最新版 nginx v1.20.2,支持openssl v1.0.2+)

    uwsgi 默认依赖的 openssl 版本为 v1.1.1

    mycli (cryptography,这个库在 paramiko 里面用到) 支持的 openssl 版本为 v1.1.0, v1.1.1,参见 https://cryptography.io/en/latest/installation/

    所以 openssl 的版本问题会造成上述软件冲突。

    解决方案

    0) 卸载默认安装的 openssl

    $ sudo yum remove openssl

    1) 手动安装 openssl v1.1.1

    https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz 下载安装包,编译安装,

    $ tar --gzip -xf openssl-1.1.1.tar.gz
    $ cd openssl-1.1.1
    $ ./config
    $ make
    $ sudo make install

    创建 openssl 的系统软链接,

    $ sudo ln -fs /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    $ sudo ln -fs /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

    2) 手动安装 nginx

    https://nginx.org/download/nginx-1.20.2.tar.gz 下载最新稳定版的 nginx,编译安装,

    $ tar --gzip -xf nginx-1.20.2.tar.gz
    $ cd nginx-1.20.2
    $ ./configure
    $ make
    $ sudo make install
    
    # 如果要删除这个安装版本,则先进入此文件夹,然后运行
    $ sudo make uninstall

    安装完成后,默认安装路径在 /usr/local/nginx/sbin/nginx,默认配置文件路径在 /usr/local/nginx/conf。
    创建并编辑 nginx 的开机启动文件 /lib/systemd/system/nginx.service,内容为,

    [Unit]
    Description=The NGINX HTTP and reverse proxy server
    After=syslog.target network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx
    ExecReload=/usr/sbin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target

    因为上述文件 nginx 可执行程序为 /usr/sbin/nginx,所以需要创建软链接如下,

    $ sudo ln -fs /usr/local/nginx/sbin/nginx /usr/sbin/nginx

    手动安装的 nginx 的配置文件路径为 /usr/local/nginx/conf/nginx.conf,根据项目需求,编辑此文件即可。

    注意,因为上述开机自启动文件 nginx.service 文件中已经制定 PIDFile=/run/nginx.pid,所以需要在 nginx.conf 中做同样的配置,如下,

    ...
    pid        /run/nginx.pid;
    ...

    设置 nginx 的开机启动 ,

    $ sudo systemctl enable nginx.service

    重启电脑。

    (完)

  • 相关阅读:
    cube.js 基于http 通道的数据实时更新bug 解决
    cube.js 基于http 通道的数据实时更新
    cube.js websocket 实时数据更新说明
    phpspy 进行php 项目性能分析
    使用groovy 下载maven依赖包
    java 几个不错的代码生成工具
    语言性能分析工具总结
    使用rbspy 分析ruby应该性能
    dremio v18.0 软件包可以使用了
    nginx rewrite查询字符串重写问题
  • 原文地址:https://www.cnblogs.com/gaowengang/p/15688003.html
Copyright © 2020-2023  润新知