前端

Meteor App 完成 https 部署

2017-05-25  本文已影响123人  浮点量化

这篇文章主要是关于如何部署使用 https 的 Meteor App。

https

https 主要是解决了三个问题。

关于要不要使用 https,大家可以看看这段 Google I/O 2016 的演讲(需要翻墙)。演讲者回答了大家普遍担心的 https 会不会影响性能和难以维护的问题。简单的结论就是这些担心已经过时了,https 反而可能会提高性能(例如启用 http/2 只能是 https),维护工作量也很少,证书也可以找到免费的,或者很便宜的。总之,https 一定是一个趋势,甚至你没有敏感数据要保护的情况下,例如一些展示静态信息的网站,也推荐使用 https。

部署

我们利用开源工具 mup 来部署 Meteor app,而 mup 又是使用了 docker,所以第一步我们要让服务器能够使用 docker。服务器的设置详见 http://www.jianshu.com/p/e01888b8af8e

然后我们按照 mup 的文档生成并配置好。和普通 http 设置不一样的是,得把 ROOT_URL 改为 https 的地址,还有添加

ssl: {
  autogenerate: {
    email: 'youremail@gmail.com',
    domains: 'yoursite.com'
  }
}

当然还有安装 force-ssl 的包 https://atmospherejs.com/meteor/force-ssl

这样你的网站就是使用 https 了。这里证书使用的是免费的 Let's Encrypt,然后自动每 30 天更新一次。

CDN

如果你的网站引入了 CDN,那么也必须是使用 https。只有少量的浏览器支持两种协议混用的。关于 Meteor app 使用 CDN,可以参考 http://www.jianshu.com/p/98388e50ab0a 。我使用的是七牛的 CDN 服务。之前也用过阿里云的,但是他们的 CDN 在使用 gzip 的时候有问题。七牛提供 TrustAsia 的免费 TLS 证书,但是只能用于七牛 CDN 自身。

使用的时候注意记得把 mup 配置的 CDN_URL 修改为 https 的地址。另外,七牛验证证书的时候可能需要先在你的域名提供商的配置里解析 txt 记录,在七牛通过验证后再删除 txt 记录,然后再把这个 CDN 域名配置为 cname 记录。

最后再次 deploy,成功后在浏览器输入你的网址,就会自动跳转到 https 的域名了。最后如果你有其他 REST服务是非 https 的,那么你可以通过后端转一下,这样就可以达到全站 https 了。

上一篇下一篇

猜你喜欢

热点阅读