1. 前言
项目中需要将请求方式改为https,在给Nginx配置SSL证书的时候,执行./nginx -t 报错: “nginx: [emerg] unknown directive ssl”
2. 原因
Nginx没有添加SSL模块,需要手动添加
3. 解决
1、准备手动添加SSL模块,看网上的文章都是进入Nginx解压目录中,执行: ./configure --with-http_ssl_module
在执行的时候却报找不到configure的执行命令
去Nginx的解压目录中看了下,发现确实没有configure文件,于是看了一下Nginx的版本: sbin目录下执行 ./nginx -v
去官网下载了相同的版本下来
复制以下文件到Nginx解压目录:
auto、man、src、configure
2、复制完成之后,在Nginx解压目录执行:
step1: ./configure --with-http_ssl_module
step2: 如果报错 ./configure: error: SSL modules require the OpenSSL library.
则按如下顺序执行,如果没有报错,直接step3
yum -y install openssl openssl-devel
./configure
./configure --with-http_ssl_module
step3:make
3、执行完毕后objs目录下会有一个nginx文件,将此文件替换到sbin/nginx(替换之前先备份一下sbin下的nginx)
4、替换之后,再执行./nginx -t 不再报错