1.背景

在Linux服务器中发布了Web项目,需要配置SSL证书,首先需要将证书下载好。一顿操作猛如虎,
只欠重启。结果一重启,报了个错如下

nginx:[emerg]unknown directive ssl,

2.出错原因

nginx中未引用SSL模块,SSL证书需要引入相应的支持模块。同时这说明在一开始编译Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。

3.安装SSL模板

注:若已经安装过,无需卸载重新安装。只需要在原有的基础上添加ssl模块。


3.1 切换到****nginx源文件解压目录
示例:

 # 这是我这里文件的目录
 cd /usr/local/nginx-1.16.0


3.2 执行引入SSL模板命令

./configure --with-http_ssl_module


注:执行这一步常见错误:缺少 OpenSSL
若出现缺少 OpenSSL错误则执行,不出现错误则直接进入下一步(3.3)

# 安装 openssl
yum -y install openssl openssl-devel
# 安装完成以上再执行
./configure
# 再次执行 
./configure --with-http_ssl_module


3.3 执行编译命令make

make

注:make 而不是 make install, make 是编译,make install是重新安装了。

3.3 部署新编译的程序
在编译完成后,在**nginx解压目录下,我这里也就是 /usr/local/nginx-1.16.0 目录下会多一个 objs文件夹。
这就是新编译的程序所在文件夹。
由于存在老的nginx,先备份一下老的程序(当然如果不重要可以忽略)

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


复制新程序,到sbin目录下

cp /usr/local/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/nginx

在这里插入图片描述
3.4 验证SSL模板是否添加成功

nginx -V

nginx命令这里需要配置好环境变量,也可以使用 /usr/local/nginx/sbin/nginx -V 在这里插入图片描述如果出现如上图,则SSL模块添加到Nginx的编译好了,这次重新启动则OK了。

关注程序员小强公众号更多编程趣事,知识心得与您分享
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐