Linux系统下ngnix使用HTTPS协议启动报错:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c
报错原因:
未安装SSL模块--ngx_http_ssl_module
解决方法:
1.先查看nginx原有的模块: /usr/local/nginx/sbin/nginx -V (或./nginx -V)在configure arguments:后面显示的参数如下:--prefix=/usr/local/nginx --with-http_stub_status_module ,则代表未安装SSL模块
2.那么安装好的参数应该是这样:
3.接下来输入命令:
yum -y install openssl openssl-devel (非必须)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 运行命令即可,
4.等配置完成后,运行命令: make 这里不要进行make install,否则就是覆盖安装
5.然后备份原有已安装好的nginx: cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
6.然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态): cp ./objs/nginx /usr/local/nginx/sbin/ 然后启动nginx,仍可以通过命令查看是否已经加入成功 /usr/local/nginx/sbin/nginx -V
最后附上完整安装nginx方法:
1.安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,
yum install gcc-c++
yum -y install zlib zlib-devel pcre pcre-devel
yum -y install openssl openssl-devel
2.切换到需要安装nginx的目录,我这里在/usr/local/ ,然后下载nginx: wget https://nginx.org/download/nginx-1.11.3.tar.gz
## 如果已安装nginx,则remove掉 yum remove nginx
3.解压下载好的nginx包:tar -zxvf nginx-1.11.3.tar.gz
4.开始安装:/usr/local/nginx-1.11.3 --是nginx的解压后的源码包
执行安装: ./configure --prefix=/usr/local/nginx
安装https认证模块(上文未安装这个导致使用https协议保存):./configure --with-http_ssl_module
再执行:make
最后执行:make install
查看安装成功:
进入安装后的包 :
最后进入sbin/nginx目录,./nginx启动即可
5.配置nginx https代理请求:
server {
server_name yuming.cn; ##需要代理的域名
listen 443 ssl;
ssl on; ##如果安装的是新版本下不需要
ssl_certificate certPath/cert.pem; ##SSL证书地址
ssl_certificate_key certPath/cert.key;##SSL证书公钥
ssl_session_timeout 3m;##超时时间
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://120.xx.xx.xx:9006; ##这里写需要转发的项目地址
}
}