阿里云轻量应用服务器预安装的 Nginx 默认没有 ssl-module,当需要使用 https 进行访问时,在配置 nginx.conf 并重启后,会提示如下:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf
解决办法:在服务器上重装下载 nginx 相应版本的源码包(原因:镜像上面没有源码包;如有,则可不用重新下载,找到源码包所在目录即可),重新编译安装,过程步骤如下:
- 假设 nginx 安装在如下目录: /usr/local/nginx
- 运行
cd sbin
,进入 sbin 子目录,进入后当前目录为 /usr/local/nginx/sbin - 运行
nginx -V
,查看版本信息(目的:获取相同版本的源码包用),假设为 v1.12.1; - 回到 /usr/local 目录, 运行
wget http://nginx.org/download/nginx-1.12.1.tar.gz
,获取源码包 - 运行
tar zxvf nginx-1.12.1.tar.gz
,解码 - 运行
cd nginx-1.12.1
,进入包的目录 - 运行
./configure --prefix=/usr/local/webserver/nginx --with-http_ssl_module
,配置参数 - 运行
make
,编译(注:不要 make install,避免覆盖原有的配置文件); - 运行
cp /usr/local/nginx/sbin/nginx ~/
(复制编译后的需要的新的可执行文件,避免覆盖原有的配置文件) - 运行
cp objs/nginx /usr/local/nginx/sbin/
(复制编译后的需要的新的可执行文件,避免覆盖原有的配置文件) - 完成