1

缘由

在此之前,博客的访问地址为 https://www.codelabo.cn/blog(当然现在页可以访问,因为做了重定向),改造成了目前的 https://blog.codelabo.cn,直观的区别就是使用了二级域名。

为什么需要这样呢?

起初,是打算直接用 https://www.codelabo.cn作为博客的访问地址的,后来想到把自己的其他项目也放到改域名下,所以决定改造成 主域名作为一个入口,分别进入到不同的项目,比如 https://www.codelabo.cn/bloghttps://www.codelabo.cn/webhttps://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('/web', web));

然后就达到了我的目的,不同的地址指向不同的项目。

就这样持续了一个多月。

后来发现一个问题,由于只是相对路径不一样,域名完全一致,所以这些项目的storage是完全共享的,比如我在blog页面登录了,把一些登录信息存到了localstorage,然后demo里面也有登录,如果字段和blog一致,就会造成数据被覆盖的问题。

这应该算是自己规划的不足吧,在浏览器看来https://www.codelabo.cn/bloghttps://www.codelabo.cn/demo完全是同一个网址,只是进到了不同的子页面,所以数据是完全共享的。

那么如何解决呢?

思考

其实各大网站都有这样的现象,因为业务繁多,主域名都只要一个,比如百度就一个https://www.baidu.com,其他业务怎么描述的呢?

用到了二级域名,甚至是三级域名!

比如

还有很多都是这种表述方式

这也是二级域名最正确的使用方式

解决

那么我现在页决定使用二级域名。

二级域名的申请是免费的,我是在腾讯云购买的域名,可以在我的域名中进行申请

我的域名

点击分配子域名至项目,然后又一个弹出框,填入你需要的二级域名名称,然后确定

我的域名

成功后进入协作子域名,就可以看到刚才申请的域名了

我的域名

当然现在还是不能使用的,需要先进行解析,进去添加解析,这里需要添加你的公网ip

我的域名

然后看到解析正常,等几分钟就可以使用这个二级域名了

我的域名

部署

以上完成了二级域名的申请和解析,那么如何把项目和这个域名来关联起来呢。

我这里用到了nginx,后面会分享一下nginx的使用

你可以把二级域名当成一个全新的域名一样,直接进行分配就行,比如

nginx.conf文件中添加如下配置

server {
       listen       443;#https默认端口
       server_name  demo.codelabo.cn;#域名
       ssl on;
       ssl_certificate      ../ssl/1_demo.codelabo.cn_bundle.crt;#htpps证书
       ssl_certificate_key  ../ssl/2_demo.codelabo.cn.key;
       ssl_session_timeout  5m;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
       ssl_prefer_server_ciphers  on;
       location / {
           root   /usr/local/src/web-app/www/demo;
           index  index.html index.htm;
           expires 1d;
       }
    }
这里用的是https,所以默认端口是443,如果是http,默认端口就是80,默认端口在浏览器可以省略不写

然后重启nginx,使配置生效

nginx -s reload

这样就完成了二级域名的部署。

小节

总的来说,这次改造还是很有成就感的,尤其是对我们这些前端来说,从刚开始对服务器半点都不懂,逐步摸索,到最终上线,这些过程还是很有意义的

关于nginx的安装和初步使用,打算最近专门整理分析一下,敬请期待~


XboxYan
18.1k 声望14.1k 粉丝