利用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 相关文章推荐
json对象转字符串如何实现
Dec 02 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
浅谈关于axios和session的一些事
Jul 13 Javascript
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
webstorm添加*.vue文件支持
May 08 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php curl基本操作详解
2013/07/23 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
python从入门到精通(DAY 2)
2015/12/20 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
python为什么要安装到c盘
2020/07/20 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
留学自荐信
2013/10/10 职场文书
护理专业的自荐信
2013/10/22 职场文书
自荐信的两点禁忌
2013/10/30 职场文书
中层干部培训方案
2014/06/16 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
垂直极限观后感
2015/06/08 职场文书
门卫管理制度范本
2015/08/05 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS