利用nginx + node在阿里云部署https的步骤详解


Posted in Javascript onDecember 19, 2017

缘起

最近在写node+mongodb版本的灵犀微商城,所以免不了要自己去部署自己的https证书到阿里服务器,下面将实现的过程完整的给大家总结下,话不多说了,来一起看看详细的介绍吧。

 HTTPS和HTTP的区别主要如下:

      1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

      2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

      3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

      4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

申请

等了2天才拿到免费的https证书,在阿里一直是显示售罄,难道最近https普遍起来导致供不应求了。

利用nginx + node在阿里云部署https的步骤详解

利用nginx + node在阿里云部署https的步骤详解

利用nginx + node在阿里云部署https的步骤详解

利用nginx + node在阿里云部署https的步骤详解

部署

利用nginx + node在阿里云部署https的步骤详解

上传了fileauth.txt到指定的目录下,几分钟后,就审核通过了,期间并没有审核电话打进来。操作部署阿里给出很详尽,复制过来就可以,不过要注意要将cert文件夹放在conf下,而不是说明上所说的nginx根目录。当你按阿里原原本本地操作,将看到这个报错,fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert/214389510580391.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) ,也就明白是cert存在目录的问题。

node反向代理

location / {
   proxy_pass http://127.0.0.1:4001;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

node还是照旧跑,不关心https还是http,它由nginx完成。第1个proxy_pass是反向代理,后面3个proxy_set_header是将请求完全由mall.it577.net接管,不加上虽然能被前端请求,但是req.originUrl仍然还是会解析为http://127.0.0.1:4001,这就影响到了微信支付回调notify_url的解耦了,于是加上这3行。

结果

利用nginx + node在阿里云部署https的步骤详解

从地址栏看到已经支持https了。

以上的过程是很简单,基本都能配置上,说下我遇到的坑。因为我阿里预装nginx并不带https模块,所以要自己手动下载安装包再重新编译,最后复制新编译出来的nginx执行文件替换并重启服务。

报错,提示找不到ssl模块

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:123

下载相应版本的ngix压缩包

wget http://nginx.org/download/nginx-1.12.1.tar.gz

解压

tar zxvf nginx-1.12.1.tar.gz

带参编译得到ssl模块

./configure --with-http_ssl_module

make

停止nginx

/usr/local/nginx/sbin/nginx -s stop

当然可以kill进程,网上搜到的是让kill的3种方法

替换旧nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

重启nginx并重新加载conf配置文件

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload

上述踩坑参考了文章https://3water.com/article/130894.htm,感谢前人栽树。

这时再在浏览器访问就看到上面给出的截图效果了,大功告成。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript模拟select,jselect的方法实现
Nov 08 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
Apr 19 Javascript
javascript实现des解密加密全过程
Apr 03 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
vue.js入门教程之基础语法小结
Sep 01 Javascript
Bootstrap轮播插件使用代码
Oct 11 Javascript
JS对大量数据进行多重过滤的方法
Nov 04 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 Javascript
angularjs结合html5实现拖拽功能
Jun 25 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 #Javascript
vue 通过下拉框组件学习vue中的父子通讯
Dec 19 #Javascript
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 #Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
Dec 19 #Javascript
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 #jQuery
基于node.js实现微信支付退款功能
Dec 19 #Javascript
React Native之prop-types进行属性确认详解
Dec 19 #Javascript
You might like
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
javascript 上下banner替换具体实现
2013/11/14 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
J2EE面试题集锦(附答案)
2013/08/16 面试题
招商专员岗位职责
2014/02/08 职场文书
优秀毕业生求职信
2014/06/05 职场文书
单位未婚证明范本
2014/11/25 职场文书
学校计划生育责任书
2015/05/09 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang