利用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 IE 与 FF中兼容问题小结
Feb 18 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
jQuery实现简单的点赞效果
May 29 Javascript
原生JS实现不断变化的标签
May 22 Javascript
详解vue-router 命名路由和命名视图
Jun 01 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
node.js事件轮询机制原理知识点
Dec 22 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
vscode调试node.js的实现方法
Mar 22 Javascript
谈一谈vue请求数据放在created好还是mounted里好
Jul 27 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实现框架(一)
2006/10/09 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
javascript 数组排序函数
2009/08/20 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
搭建vue开发环境
2018/07/19 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
python全栈开发语法总结
2020/11/22 Python
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
大学生职业生涯规划书范文
2014/01/14 职场文书
学生党支部先进事迹
2014/02/04 职场文书
高中军训感言600字
2014/03/11 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
改造DE1103三步曲
2022/04/07 无线电
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS