一、前言

最近,在测试环境的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配置了软件安装目录):

./configure --prefix=/home/useradmin/nginx --with-http_ssl_module

3.编译命令是make,与安装命令是make install,这2个都要执行,可以用make && make install

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐