利用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 相关文章推荐
在jQuery 1.5中使用deferred对象的代码(翻译)
Mar 10 Javascript
javascript二维数组转置实例
Jan 22 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
跟我学习javascript的隐式强制转换
Nov 16 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
vue基于element-ui的三级CheckBox复选框功能的实现代码
Oct 15 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
小程序实现日历左右滑动效果
Oct 21 Javascript
javascript实现获取中文汉字拼音首字母
May 19 Javascript
vue实现可移动的悬浮按钮
Mar 04 Vue.js
使用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截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php解决约瑟夫环示例
2014/04/09 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
php生出随机字符串
2017/07/06 PHP
js验证表单大全
2006/11/25 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
python中os模块详解
2016/10/14 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
维德科技C#面试题笔试题
2015/12/09 面试题
学生党员的自我评价范文
2014/03/01 职场文书
党员示范岗材料
2014/12/19 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
学术会议开幕词
2016/03/03 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android