本人先前使用的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 here
493 | 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