在此之前的原因,博客的访问地址是https://www.codelabo.cn/blog(当然现在可以访问页面了因为重定向),并且转化成了现在的https://blog.codelabo.cn,直观的区别就是使用了二级域名。为什么这是必要的?一开始打算直接用https://www.codelabo.cn作为博客的访问地址。后来想到把自己的其他项目放到改域名下,于是决定改主域名作为入口,进入不同的项目,比如https://www.codelabo.cn/blog,https://www.codelabo.cn/web,https://www.codelabo.cn/demo...这样的分支。这部分可以在koa2中完成,我用的是koa-mount,这个库可以用来指向不同服务的路径。app.use(mount('/blog',blog));app.use(mount('/demo',demo));app.use(mount('/portal',portal));app.use(mount('/网络',网络));然后我的目的就达到了,不同的地址指向不同的项目。就这样持续了一个多月。后来,我发现了一个问题。因为相对路径不同,域名完全相同,所以这些项目的存储是完全共享的。比如我在博客页面登录,在localstorage中保存了一些登录信息,然后demo中就有了登录。如果字段和博客一致,会造成数据被覆盖的问题。这应该算是缺乏自我规划。在浏览器看来,https://www.codelabo.cn/blog和https://www.codelabo.cn/demo是完全一样的URL,只是进入了不同的子页面,所以数据是完全共享的。那么如何解决呢?其实各大网站都有这种现象,因为业务很多,主域名只有一个。比如百度只有一个https://www.baidu.com。其他企业如何描述它?用的是二级域名,甚至是三级域名!比如百度知乎:https://zhidao.baidu.com百度地图:http://map.baidu.com还有很多其他的表达方式,这也是一个二级最正确的使用方式域名就是为了解决它,所以我现在决定使用二级域名。二级域名的申请是免费的。我在腾讯云购买的域名。您可以在我的域名中申请。点击为项目分配子域名,会弹出另一个弹框,填写你需要的二级域名名称,确认成功后,输入合作子域名name,就可以看到刚才申请的域名了。当然,现在还不能用。您需要先对其进行分析,然后再添加分析。这里需要添加你的公网ip,看解析是否正常。等几分钟就可以使用这个二级域名了。部署完成后,二级域名的申请和解析就已经完成了,那么如何将项目关联到这个域名呢。我这里使用的是nginx,后面会分享nginx的使用。你可以把二级域名当作一个全新的域名,直接分配即可。比如在nginx.conf文件中添加如下配置server{listen443;#https默认端口server_namedemo.codelabo.cn;#域名sslon;ssl_certificate../ssl/1_demo.codelabo.cn_bundle.crt;#htpps证书ssl_certificate_key../ssl/2_demo.codelabo.cn.key;ssl_session_timeout5m;ssl_protocolsTLSv1TLSv1。1个TLSv1.2;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers开启;location/{root/usr/local/src/web-app/www/demo;indexindex.htmlindex.htm;1d到期;}}这里是https,所以默认端口是443,如果是http,默认端口是80,浏览器中可以省略默认端口,然后重启nginx,这样配置生效,nginx-sreload完成二级域名的部署。Section总的来说,这次改造还是很有成就感的,尤其是对我们前端来说。从一开始我们对服务器完全不了解,慢慢摸索,终于上线了。这些过程还是很有意义的。关于nginx的安装和初次使用,最近打算整理分析一下,敬请期待~
