当前位置: 首页 > news >正文

nginx与openSSL版本不兼容问题

本人先前使用的nginx-version为1.18.0,openSSL-version为3.0.2;

在源码的安装configure过程中,出现以下报错

error: ‘ENGINE_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]734 |             ENGINE_free(engine);|             ^~~~~~~~~~~
In file included from src/event/ngx_event_openssl.h:22,from src/core/ngx_core.h:84,from src/event/ngx_event_openssl.c:9:
/usr/include/openssl/engine.h:493:27: note: declared here493 | OSSL_DEPRECATEDIN_3_0 int ENGINE_free(ENGINE *e);|                           ^~~~~~~~~~~
src/event/ngx_event_openssl.c:738:9: error: ‘ENGINE_free’ is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]738 |         ENGINE_free(engine);|         ^~~~~~~~~~~
In file included from src/event/ngx_event_openssl.h:22,from src/core/ngx_core.h:84,from src/event/ngx_event_openssl.c:9:
/usr/include/openssl/engine.h:493:27: note: declared here

查阅资料得知nginx1.18.0与openSSL 3.0不兼容,我将nginx升级到1.22.0-version解决了此问题。

安装步骤

1. 更新系统包

首先,更新系统包以确保所有软件都是最新版本:

sudo apt-get update
sudo apt-get upgrade -y

2. 安装编译工具和依赖

安装编译 Nginx 所需的工具和库:

sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev

3. 下载并编译 Nginx

3.1下载 Nginx 源码

mkdir ~/nginx-build && cd ~/nginx-build
wget http://nginx.org/download/nginx-1.22.0.tar.gz 
tar -zxvf nginx-1.22.0.tar.gz

3.2编译 Nginx 并添加想要安装的模块,例如RTMP 模块

cd nginx-1.22.0
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module
make
sudo make install

4.启动nginx

sudo /usr/local/nginx/sbin/nginx

5.验证配置

5.1检查 Nginx 是否运行

sudo /usr/local/nginx/sbin/nginx -t

5.2检查 RTMP 模块是否加载

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

如果配置正确,你应该在输出中看到 --add-module=...nginx-rtmp-module

相关文章:

nginx与openSSL版本不兼容问题

本人先前使用的nginx-version为1.18.0,openSSL-version为3.0.2; 在源码的安装configure过程中,出现以下报错 error: ‘ENGINE_free’ is deprecated: Since OpenSSL 3.0 [-Werrordeprecated-declarations]734 | ENGINE_free(en…...

【RabbitMQ】事务

事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的,该协议实现了事务机制,因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的&#xff0c…...

【C#学习笔记03】进制转换与反码、补码、原码

1. 进制转换 计算机中的数据通常以二进制形式存储,但在编程和调试过程中,我们经常需要与十进制、八进制和十六进制打交道。因此,掌握进制转换是C语言学习中的重要一环。 1.1 进制的基本概念 二进制(Binary)&#xff…...

线性搜索算法

何时使用线性搜索算法? 当处理一个小数据集时。当搜索存储在连续内存中的数据集时。 线性搜索算法在什么情况下优于其他搜索算法? 当列表或数组未排序时,或者当输入的大小相对较小时,首选线性搜索算法。它易于实现,并…...

基于深度文档理解的开源 RAG 引擎RAGFlow的介绍和安装

目录 前言1. RAGFlow 简介1.1 什么是 RAGFlow?1.2 RAGFlow 的核心特点 2. RAGFlow 的安装与配置2.1 硬件与软件要求2.2 下载 RAGFlow 源码2.3 源码编译 Docker 镜像2.4 设置完整版(包含 embedding 模型)2.5 运行 RAGFlow 3. RAGFlow 的应用场…...

蓝桥杯—走迷宫(BFS算法)

题目描述 给定一个NM 的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 11表示,障碍物用 0 表示)。 已知迷宫的入口位置为 (x1​,y1​),出口位置为 (x2​,y2​)。问从入口走到出口,最少要走多少…...

基于云函数的自习室预约微信小程序+LW示例参考

全阶段全种类学习资源,内涵少儿、小学、初中、高中、大学、专升本、考研、四六级、建造师、法考、网赚技巧、毕业设计等,持续更新~ 文章目录 [TOC](文章目录) 1.项目介绍2.项目部署3.项目部分截图4.获取方式 1.项目介绍 技术栈工具:云数据库…...

Flutter 学习之旅 之 flutter 不使用插件,实现简单带加载动画的 LoadingToast 功能

Flutter 学习之旅 之 flutter 不使用插件,实现简单带加载动画的 LoadingToast 功能 目录 Flutter 学习之旅 之 flutter 不使用插件,实现简单带加载动画的 LoadingToast 功能 一、简单介绍 二、LoadingToast 三、简单案例实现 四、关键代码 一、简单…...

GStreamer —— 2.17、Windows下Qt加载GStreamer库后运行 - “播放教程 5:色彩平衡“(附:完整源码)

运行效果 介绍 亮度、对比度、色相和饱和度是常见的视频调整, 在 GStreamer 中统称为 Color Balance 设置。 本教程展示了: • 如何找出可用的色彩平衡通道 • 如何更改它们 允许访问颜色平衡设置。如果 元素支持这个接口,只需将其转发给应用…...

在wsl2中安装ubuntu

Linux 是操作系统内核,Ubuntu 是基于Linux的发行版。 虚拟机 是运行操作系统的虚拟环境,可以在物理机上运行多个操作系统,包括Linux和Ubuntu。 1:启用 WSL 功能 以管理员身份打开 PowerShell。(winR,输入powershell&…...

SPFA算法——负权图且没有负环

SPFA算法其实是对Bellman-ford算法的优化,Bellman-ford算法更新最短路是采用的是遍历每一条边,找到最短的边进行更新d[v]min(d[v],d[u]w(u,v)),由 d[v]min(d[v],d[u]w(u,v))可知只有当 d[ u ]变小时才有可能更新,所以用一个队列存…...

5G基本概念

作者:私语茶馆 1. 5G应用场景概述 1.1.5G应用场景 ITU域2015年定义了三大应用场景:eMBB(增强型移动宽带)、uRLLC(低时延高可靠通信)、mMTC(海量物联网通信); emBB:Enhanced Mobile Broadband ,移动互联网应用,是4G MBB(移动宽带)的升级,主要侧重于网络速率、带…...

conda 安装软件报错 Found conflicts! Looking for incompatible packages.

问题描述: 利用 conda 安装某包 conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc时发现报错: Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with…...

PySide(PyQT),QGraphicsItem的pos()和scenePos()区别

在QGraphicsItem中,pos()和scenePos()是两个重要的方法,用于描述图形项的位置,但它们的含义和用途有所不同。理解它们的区别对于正确操作和管理QGraphicsItem的位置至关重要。 1. pos()方法 • 定义:pos()返回的是QGraphicsItem在…...

【每日八股】计算机网络篇(四):HTTP

目录 HTTP 与 HTTPS 的区别?HTTPS 加密与认证的过程?ClientHelloServerHello客户端回应服务端回应 HTTPS 一定安全可靠吗?HTTPS 状态码的含义?HTTP 缓存有哪些实现方式?HTTP 1.0、HTTP 1.1、HTTP 2.0 和 HTTP 3.0 的区…...

基于python下载ERA5小时尺度和月尺度的数据

前言:由于ERA5网站的更新,原始的代码都无法使用,这里将会提供下载小时尺度和月尺度的代码。 一、前期的工作 需要重新在ERA5网站上注册新的账号(ERA5网站)。然后在User guide里,选择API,将代码…...

【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现软件开机自启

文章目录 前言 一、准备工作1.1 环境搭建1.2 创建 Tauri 项目1.3 添加依赖 二、实现开机自启的基本原理2.1 开机自启的基本概念2.2 Tauri 应用的生命周期 三、Windows 平台实现3.1 Windows 注册表机制3.2 实现步骤3.3 注意事项 四、Linux 平台实现4.1 Linux systemd 服务4.2 实…...

C++20 模块:告别头文件,迎接现代化的模块系统

文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…...

【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析

【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析 向Kafka Broker服务节点中发送主题消息数据的应用程序被称为生产者,生产者与消费者均属于Kafka客户端,几乎所有主流语言都支持调用客户端API。官方提供了基于Java实现的kafka-clients,用于…...

java-单列模式-final-枚举

内存存储区域 引用变量和普通变量引用变量放在栈中,基本数据类型的内容是在堆内存中。 对象放在堆内存中,其引用变量放在栈中,指向堆内存存放对象的地址。 静态变量放在静态区中,静态变量在程序的执行始中中分配一次,…...

deepseek 3FS编译

3FS在ubuntu22.04下的编译(记录下编译过程,方便后续使用) 环境信息 OS ubuntu 22.04内核版本 6.8.0-52-genericlibfuse 3.16.1rust 1.75.0FoundationDB 7.1.66meson 1.0.0ninja 1.10.1 libfuse编译 以下建议均在root下执行 pip3 install…...

LabVIEW非线性拟合实现正弦波参数提取

LabVIEW的Nonlinear Curve Fit.vi基于Levenberg-Marquardt算法,能够实现非线性最小二乘拟合,包括正弦波三参数(幅值、频率、相位)的精确求解。该工具适用于非均匀采样、低信噪比信号等复杂场景,但需注意初始参数设置与…...

CAMEL 学习笔记一

课程讲义 https://github.com/camel-ai/owl CAMEL (Communicative Agents for “Mind” Exploration of Large Language Models)是一个开源的多智能体框架,专注于构建基于大语言模型的智能体交互系统。该框架通过角色扮演和结构化对话机制,实现智能体之…...

java每日精进 3.11 【多租户】

1.多租户概念 1. 多租户是什么? 多租户,简单来说是指一个业务系统,可以为多个组织服务,并且组织之间的数据是隔离的。 例如说,在服务上部署了一个MyTanant系统,可以支持多个不同的公司使用。这里的一个公…...

2.2 企业级ESLint/Prettier规则定制

文章目录 1. 为什么需要企业级代码规范2. 工具选型对比3. 完整配置流程3.1 项目初始化3.2 ESLint深度配置3.3 Prettier精细配置3.4 解决规则冲突4. 高级定制方案4.1 自定义ESLint规则4.2 扩展Prettier插件5. 团队协作策略5.1 配置共享方案5.2 版本控制策略6. CI/CD集成7. 常见问…...

Ubuntu 源码安装 Qt5

1.开发背景 Ubuntu 下安装指定版本的 Qt,最新的Qt官方已经不支持 Qt5.15.2 版本以下版本,所以有必要用旧的源码编译 Qt 库。 2.开发需求 源码安装 Qt5.12.2 3.开发环境 开发环境:Ubuntu18.04 目标版本:Qt5.12.2 4.实现步骤 4…...

【Linux】权限相关知识点

思考 我们平时使用Linux创建文件或目录时的默认权限是多少? [rootlocalhost test]: mkdir dir [rootlocalhost test]: touch file [rootlocalhost test]: ll total 0 drwxr-xr-x 2 root root 6 Mar 8 15:23 dir #755 -rw-r--r-- 1 root root 0 Mar 8 15:23 f…...

SSH 安全致命漏洞:渗透路径与防御策略

作为远程管理的核心协议,SSH 的 22 端口在全球服务器中广泛部署,却也成为攻击者的首要目标。本文将以技术视角还原黑客通过 22 端口渗透的完整路径,并结合最新漏洞(如 CVE-2024-6387)提供防御建议,帮助企业…...

使用ngnix进行负载均衡部署deepseek蒸馏版

使用ngnix进行负载均衡部署deepseek蒸馏版 一、安装及配置nginx1.1.安装依赖:1.2. 导入Nginx签名密钥1.3. 添加Nginx软件源1.4. 更新软件包列表并安装Nginx1.5. 启动Nginx服务1.6. 验证安装1.7.修改配置文件,将自己的内容加进去1.8、重新加载Nginx配置:二、模型启动2.1、分布…...

面试之《TypeScript泛型》

在 TypeScript(TS)里,泛型是一项极为重要的特性,它能让你编写可复用、类型安全且灵活的代码。以下从多个方面为你详细介绍 TS 中的泛型: 基本概念 泛型允许你创建可重用的组件,这些组件能够处理多种数据类…...

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…...

IDEA(十一)调整新版本的工具栏显示Git操作(pull、commit、push、revert等)

目录 一、背景二、操作步骤2.1 开启新 UI 样式2.2 设置 Tool Window 工具栏 一、背景 好久没有更新 IDEA 了,更新之后发现 IDEA 的工具栏消失了。一番操作之后,终于把 IDEA 的工具栏的设置调整好了,在此进行记录调整步骤,供大家学…...

基于Prometheus+Grafana的Deepseek性能监控实战

文章目录 1. 为什么需要专门的大模型监控?2. 技术栈组成2.1 vLLM(推理引擎层)2.2 Prometheus(监控采集层)2.3 Grafana(数据可视化平台)3. 监控系统架构4. 实施步骤4.1 启动DeepSeek-R1模型4.2 部署 Prometheus4.2.1 拉取镜像4.2.2 编写配置文件4.2.3 启动容器4.3 部署 G…...

windows下docker的安装

前言 早期的docker只能在Linux下使用,随着技术的发展,目前docker在Windows下也能方便的使用了。 一、docker的下载 从docker官网下载“docker desktop” 下载这个: 二、Windows下docker的安装 安装完毕后,重启的系统进行登录&am…...

Nginx正向代理HTTPS配置指南(仅供参考)

要使用Nginx作为正向代理访问HTTPS网站,需通过CONNECT方法建立隧道。以下是操作详细步骤: 1. 安装Nginx及依赖模块 需要模块:ngx_http_proxy_connect_module(支持CONNECT方法)。 安装方式:需重新编译Nginx…...

01_LVGL 对象与盒子模型详解

1. LVGL 的对象 ​ 在LVGL中,⽤⼾界⾯的 基本组成部分 是对象(控件),也称为 Widgets。例如,⼀个 按钮、标签、图像、列表、图表 或者 ⽂本区域。所有的对象都使⽤ lv_obj_t 指针作为句柄进⾏引⽤。之后可以使⽤该指针…...

【redis】string应用场景:共享会话和手机验证码

文章目录 共享会话实现思路 手机验证码实现思路伪代码实现生成验证码验证验证码 共享会话 实现思路 如果每个应用服务器,维护自己的会话数据,此时彼此之间胡共享,用户请求访问到不同的服务器上,就可能会出现一些不能正确处理的情…...

【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD

内容预览 ≧∀≦ゞ Windows终端美化指南:美化你的命令行界面!引言一、准备工作包管理器:scoop为什么选择使用 Scoop 安装?安装 scoop 字体终端离线安装步骤配置 Windows Terminal 二、配置美化 PowerShell安装 oh-my-posh激活 oh-…...

刷leetcode hot100--动态规划3.11

第一题:最长递增子序列[10:53] 1.dp数组及下标含义:dp[n]:nums[0...n]的最长严格递增子序列长度【无法进行后续比较】 dp[n]以nums[n]结尾的最长严格递增子序列对应的长度 2.初始化:注意!!这里应该初始化为1&#x…...

网络安全基础与应用习题 网络安全基础答案

1.列出并简要给出SSH的定义。 正确答案: 答:6.10传输层协议:提供服务器身份验证、数据保密性和数据完整性,并具有前向保密性(即,如果在一个会话期间密钥被破坏,则知识不会影响早期会话的安全性&…...

利用python生成excel中模板范围对应的shape文件

利用python生成excel中模板范围对应的shape文件 # -*- coding: utf-8 -*- import os.pathimport pandas as pd from shapely.geometry import Polygon from shapely.wkt import dumps import argparse# 创建解析器 parser argparse.ArgumentParser(description"这是一个…...

方案精读:IBM方法论-IT规划方法论

该文档聚焦 IT 规划方法论,适合企业高层管理者、IT 部门负责人、业务部门主管以及参与企业信息化建设的相关人员阅读。 (本解读资料已包含在绑定资源内) 主要内容围绕 IT 规划展开:首先明确 IT 规划需基于企业核心战略&#xff0…...

JAVA面试_进阶部分_正确使用 Volatile 变量

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效…...

ArcGIS Pro中字段的新建方法与应用

一、引言 在地理信息系统(GIS)的数据管理和分析过程中,字段操作起着至关重要的作用。 无论是进行地图制作、空间分析还是数据统计,字段都是承载属性信息的基本单元。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提…...

c++ 中的引用

引用与指针经常混淆,总结一下 文章目录 1. 引用与指针的区别2. 引用传递数组3. 通过引用传递容器和类4. 多线程传递容器时用 std:: ref 替代引用传递 1. 引用与指针的区别 引用(Reference):引用是变量的别名,本质上不…...

使用jest测试用例之入门篇

Jest使用 Jest 是由 Facebook 开发的一个 js 测试框架,jest 主要侧重于被用于做单元测试和集成测试 安装 npm i jest -D运行 **package.json**里面配置命令 // scripts添加测试脚本 {"test": "jest" /* 运行后便会使用 jest 执行所有的 .t…...

k8s面试题总结(十四)

什么是Helm? Helm是一个k8s的包管理工具,它简化了应用程序在k8s集群中的部署,管理和维护。类似于rpm包和yum之间的关系。 K8s传统方式:类似于rpm安装包的方式,逐步进行安装,遇到依赖还得解决依赖问题 he…...

后端面试高频笔试题(非常规LeetCode类型)

目录 1. 常见的五种单例模式的实现⽅式 2. 约瑟夫环 (递归) 3. 交替打印奇偶数 (Semaphore、synchronized搭配wait、notify) 4. 交替打印 ABC (Semaphore) 5. 三个线程交替打印 1 到 99 (Semap…...

el-table 通过 slot=“header“ 自定义表头,遇到数据不更新的问题。

从表中可以看到我要的数据为空,但是在控制台输出数据又不为空,由此判断是自定义表头的内容未在数据变化时触发重新渲染 在 Element UI 官方示例中,若通过旧式插槽语法 slot"header" 实现自定义表头,并在表头内集成 el-s…...

ESP32S3N16R8驱动ST7701S屏幕(vscode+PlatfoemIO)

1.开发板配置 本人开发板使用ESP32S3-wroom1-n16r8最小系统板 由于基于vscode与PlatformIO框架开发,无espidf框架,因此无法直接烧录程序,配置开发板参数如下: 在platformio.ini文件中,配置使用esp32-s3-devkitc-1开发…...