前文已经从各方面提供了一些最近自己在开发Node.js Web应用方方面面的事情,不仅有Web基础框架,远程Database,调试,运维等等,今天几乎到了最后一步,就是让你的应用上线,可以通过公开的网址来访问。
远程Database,由于我们只是开发一个很小的应用,所以并没有启用mysql这样的数据库,而是选择了baas服务,你可以阅读《没有服务端-依赖BaaS打造移动/Web应用》,这是我前年写的一篇文章,还未过时。如果,你想使用Mysql,也可以应用egg提供的egg-mysql来操作mysql数据库,比起对象的方式,我可能更喜欢SQL,所以,我基本上用Baas服务也是写的CQL,如图:
不过,首先你要先有一个域名,在中国大陆经营网站都是需要经过备案,拿到备案号之后才能正常的运营,So,如果你还没有备案的话,一定要先去完成这个事情。备案很简单,就是流程多,准备好一些材料,如身份证,域名证书,幕布照片等。
目前市面上可以免费使用的HTTPS,我选择的是Let's Encrypt - Free SSL/TLS Certificates,这个证书是所有浏览器厂商都支持,而且很好用的一种,配合certbot部署方式灵活便捷,值得拥有。
打开 https://certbot.eff.org/ 网站选择你的机器类型,由于我的ECS是ubuntu 16.04,并且使用了nginx,So,我选择的是这个类型。
先在你的机器上安装好certbot,由于我不想使用CertBot的standalone模式,这个模式虽然可以配置好服务器,但是以后Renew的时候,需要让服务停止一下,再启动。因此抛弃这个模式,我们使用Webroot配置模式。因为,CertBot在验证服务器域名的时候,会生成一个随机文件,然后CertBot的服务器会通过HTTP访问你的这个文件,因此要确保你的Nginx配置好,以便可以访问到这个文件。
修改你的服务器配置,在server模块添加:
运行 nginx -s reload,重启nginx,接着在命令行输入
sudo certbot certonly --webroot -w /usr/share/nginx/html/ -d your.domain.com ,后面的域名要替换成你自己的。
如果出现下图,则说明证书生成成功:
同样的,这里需要在nginx中配置启用HTTPS
重启nginx,然后通过https访问试试?