一:开启Nginx的SSL模块
Nginx如果未开启SSL模块,配置Https时提示如下错误:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf
解释:nginx缺少http_ssl_module模块,需要在已安装的nginx中添加ssl模块。
说明:我的nginx安装目录为:/usr/local/nginx , 源码包在/usr/src/nginx-1.5.9目录
Nginx开启SSL模块:
切换到源码包:
cd /usr/src/nginx-1.5.9
查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V
在configure arguments:后面显示的原有的configure参数如下:
--prefix=/usr/local/nginx --with-http_stub_status_module
二:从新配置SSL模块:
进入nginx源码包目录,运行:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
配置完成后,运行命令make命令:
make
注意:此处不能进行make install,否则就是覆盖安装
三:替换已安装好的nginx包
替换之前先备份:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
先停止nginx服务:
//查询nginx主进程号 $ ps -ef | grep nginx //从容停止Nginx: $kill -QUIT 主进程号 //快速停止Nginx: kill -TERM 主进程号 //强制停止Nginx: pkill -9 nginx
将刚刚编译好的nginx覆盖掉原有的nginx
cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
此时应该显示为即配置成功:
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
补充:
nginx配置ssl,支持https的配置:
server { listen 443 ssl; server_name aa.abc.com; ssl_certificate cert/2643408_xxx.pem; ssl_certificate_key cert/2643408_xxx.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8886; } }