要想让 Web服务器支持 HTTPS ,首先你的服务器肯定要支持 SSL ,所以我们先检查 Nginx 是否支持 SSL :
/usr/local/nginx/sbin/nginx -V
通过命令显示信息,我们看configure arguments中是否有 -with-http_ssl_module字样,如果像我这样没有的话,你就需要重新编译 Nginx 以支持 SSL 了。如果有,请跳过这步骤,直接看Nginx 配置 HTTPS 服务那一节。
安装 Nginx 可能大家都会,不会的可以看 从零开始学 Java – CentOS 下安装 Nginx ,但是平滑升级 Nginx 可能你没有体验过,这样说吧,在线上服务器环境下,你要支持 HTTPS 访问,但是你发现你的 Nginx 不支持 SSL ,你肯定不能卸载 Nginx 重新安装时加载 SSL 模块,因为那是线上服务器。你只能在现有安装的 Nginx 下进行无痛升级以以支持 SSL ,这就用到了 Nginx 的 平滑升级 概念。
找到你之前安装 Nginx 时的编译目录,如果你和我一样找不到或许删除了,那我们就需要重新下载一个 Nginx 了,当然我们是通过 wget 方式,看命令:
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz tar -zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1
配置,加入 SSL 模块:
./configure --with-http_ssl_module make
注意,千万不能在像安装的时候make install了,因为我们这是升级。
备份原 Nginx 执行脚本
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
把新版本 Nginx 编译脚本放到可执行文件目录下
cd objs/ cp nginx /usr/local/nginx/sbin/
进行平滑升级,命令:
make upgrade
这时候会输出这些信息:
/usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` sleep 1 test -f /usr/local/nginx/logs/nginx.pid.oldbin kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
没问题之后接下来,查看现在目前版本及安装模块:
/usr/local/nginx/sbin/nginx -V
看到已经从 1.4.6 版本升级到了 1.10.1,而且这种升级不影响正常访问的。线上环境操作也是可以的。
如无特殊说明,文章均为本站原创,转载请注明出处
- 转载请注明来源:Nginx 平滑升级以支持 HTTPS
- 本文永久链接地址:http://www.hongxiaowei.com/xiaowei/581.html