美文网首页
nginx+node在阿里云部署https

nginx+node在阿里云部署https

作者: 黄秀杰 | 来源:发表于2017-12-18 20:41 被阅读0次

    缘起

    最近在写node+mongodb版本的灵犀微商城,所以免不了要自己去部署自己的https证书到阿里服务器

    申请

    等了2天才拿到免费的https证书,在阿里一直是显示售罄,难道最近https普遍起来导致供不应求了。

    0元购买 绑定域名 填写资料——其实并不会打手机过来,注意要验证类型这里选的是文件 上传认证文件供访问

    部署

    部署步骤

    上传了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行。

    结果

    演示

    从地址栏看到已经支持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
    
    

    上述踩坑参考了文章http://blog.51cto.com/1439337369/1863395,感谢前人栽树。

    这时再在浏览器访问就看到上面给出的截图效果了,大功告成。

    ps. 今天有位朋友说部署不了,需要协助安装的,发了红包忘记留言备注你的联系方式了,看到的话,留言给出联系方式吧。

    mp

    相关文章

      网友评论

          本文标题:nginx+node在阿里云部署https

          本文链接:https://www.haomeiwen.com/subject/xztvwxtx.html