发布于 

nginx开启模块(无需重新覆盖安装)

问题背景:

在我们使用nginx时,配置到一些没有开启的模块时,比如没有开启SSL模块配置Https,Http2相关配置时,可能会报如下错误:

1
2
the "ssl" parameter requires ngx_http_ssl_module
the ‘http2’ parameter requires ngx_http_v2_module in xxx.conf

出现这些问题的原因就是nginx并没有开启对应的模块,而我们的nginx已经安装好了,我们需要做的是添加模块。

解决步骤:

查看nginx当前所开启的模块

1
nginx -V

image-20230321100654128

--with-http_ssl_module--with-http_v2_module就是我已经开启的模块

配置nginx模块

找到nginx的最新source包(如果没有可以直接去nginx官网下载),进入到源码目录,配置新模块

1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module 

后面的参数就是我们需要配置的模块,我们需要把自己nginx之前所使用的模块也带上,不然开启好新模块后可能会丢失之前所使用到的模块

编译

此处切记不要使用make install,不然之前就会覆盖之前nginx的安装

1
make

备份nginx

将现有的nginx进行备份操作(这里nginx的位置按照自己nginx的位置进行操作)

1
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

覆盖原有nginx

将编译好的nginx复制到之前nginx的位置

1
cp ./objs/nginx /usr/local/nginx/sbin/

重启nginx

1
2
nginx -s stop
nginx



Copyright © 2023 ChenWei | Powered By Stellar
本站已运行 00 小时 00