配置nginx支持https

Posted yucongblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置nginx支持https相关的知识,希望对你有一定的参考价值。

 一:开启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;
        
    

 

以上是关于配置nginx支持https的主要内容,如果未能解决你的问题,请参考以下文章

Nginx使用ssl模块配置HTTPS支持

Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

Nginx正向代理配置

Nginx从搭建到配置支持HTTPS

nginx正向代理配置

Nginx强制跳转Https配置