利用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 相关文章推荐
接收键盘指令的脚本
Jun 26 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 Javascript
jQuery Validation Plugin验证插件手动验证
Jan 26 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
vant时间控件使用方法详解
Dec 24 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 16 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错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
招聘单位介绍信
2014/01/14 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
教研处工作方案
2014/05/26 职场文书
社团活动总结书
2014/06/27 职场文书
机动车登记业务委托书
2014/10/08 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android