利用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 相关文章推荐
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
javascript判断office版本示例
Apr 11 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
JavaScript中Cookies的相关使用教程
Jun 04 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
JavaScript对象学习小结
Sep 02 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
js监听input输入框值的实时变化实例
Jan 26 Javascript
javascript Function函数理解与实战
Dec 01 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 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文件夹与文件目录操作函数介绍
2013/09/09 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python数组过滤实现方法
2015/07/27 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python3 操作符重载方法示例
2017/11/23 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python shutil模块用法实例分析
2019/10/02 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Python实现EM算法实例代码
2020/10/04 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
经典C++面试题一
2016/11/06 面试题
会计岗位职责
2013/11/08 职场文书
计算机毕业大学生推荐信
2013/12/01 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
校运会入场式解说词
2014/02/10 职场文书
优秀护士先进事迹
2014/05/08 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
asyncio异步编程之Task对象详解
2022/03/13 Python