一、前言
最近,在测试环境的nginx里增加了一个https
配置:
location /api-meeting-qq/ {
proxy_pass https://api.meeting.qq.com/;
}
然后,执行命令:
//这个是nginx启动文件的路径,根据实际情况自行更改
sudo /home/useradmin/nginx/sbin/nginx -s reload
结果,nginx就报错了:
nginx: [emerg] https protocol requires SSL support in /home/useradmin/nginx/conf.d/trainNginx.conf:9
二、解决方法
百度发现,是之前安装nginx时没有安装ssl模块,需要重新安装一个nginx。步骤如下:
1.下载好nginx安装包,例如nginx-1.17.2.tar.gz
2.查看下目前nginx使用的配置是什么:
/home/useradmin/nginx/sbin/nginx -V
发现,确实没有ssl模块:
[useradmin@web01 sbin]$ ./nginx -V
nginx version: nginx/1.17.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
configure arguments: --prefix=/home/useradmin/nginx
3.可以把之前的nginx关闭,然后重命名下:
sudo /home/useradmin/nginx/sbin/nginx -s stop
mv /home/useradmin/nginx /home/useradmin/nginxOld
4.解压nginx安装包tar.gz,到指定目录(如果没有就自己建一个文件夹):
tar -zxvf nginx-1.17.2.tar.gz -C ./nginx-1.17.2
5.cd到解压后的目录nginx-1.17.2,可以看到其中有configure
文件;
然后执行命令,修改configure,安装时增加ssl模块:
//这个命令要参考第2步的结果,看下自己之前的配置是什么,然后在结尾增加ssl模块即可
./configure --prefix=/home/useradmin/nginx --with-http_ssl_module
6.然后,执行编译命令make
与安装命令make install
,就可以安装到指定文件夹了:
make && make install
7.可以把旧nginx中conf文件夹的内容,复制到新nginx文件夹中,就可以继续沿用旧nginx配置:
cp -r /home/useradmin/nginxOld/conf /home/useradmin/nginx/conf
8.现在可以在新nginx中配置https转发,然后启动测试下:
sudo /home/useradmin/nginx/sbin/nginx
没有报错,就是成功了。
9.查看是否启动成功:
ps -ef |grep nginx
10.查看是否支持https:
/home/useradmin/nginx/sbin/nginx -V
结果为:
[useradmin@web01 ~]$ /home/useradmin/nginx/sbin/nginx -V
nginx version: nginx/1.17.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/home/useradmin/nginx --with-http_ssl_module
可以看到,有--with-http_ssl_module
,说明成功安装了ssl模块。
三、备注
1.tar.gz解压到指定文件夹的命令为:
tar -zxvf nginx-1.17.2.tar.gz -C ./nginx-1.17.2
2.修改configure命令为(prefix配置了软件安装目录):文章来源:https://www.toymoban.com/news/detail-401205.html
./configure --prefix=/home/useradmin/nginx --with-http_ssl_module
3.编译命令是make
,与安装命令是make install
,这2个都要执行,可以用make && make install
文章来源地址https://www.toymoban.com/news/detail-401205.html
到了这里,关于nginx配置https后报错nginx: [emerg] https protocol requires SSL support in XXX.conf详细解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!