IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    服务器迁移小记

    dron发表于 2016-11-27 17:13:20
    love 0

    上个月,2016 杭州云栖大会召开,阿里云宣布云产品全线打折,刚好我的服务器 12 月到期,顺手就购入三年,真的很便宜。

    本站一直用的万网虚机,记不清几年了,原来的技术方案是 PHP + MySql,新的服务器上,我准备部署 Node + MongoDB,也就引发了这篇文章所述的事情。

    站点上的东西不多,大多数都是纯静态内容,迁移起来很方便,资源路径替换替换也就好了,其它若干 PHP 页面,也都寻找最省事的方案,几个简单原则:

    • 为了不影响搜索引擎的收录,所有原来的 URL 保证全部可访问;
    • 所有页面基本功能正常;
    • 所有的统计埋点不受影响;

    Server

    基本思路是动静分离,借助 connect 模块 分配路由,使用 connect-modrewrite 中间件 做重定向:

    • /api/** 下的都是 JSON 或 JSONP 接口,使用 mongodb 模块 读写数据库,向全站所有应用提供数据服务;
    • 其它部分都是纯静态,使用 vhost 中间件 分割虚拟主机,使用 serve-static 中间件 驱动每个站点;

    博客

    以前用的 WordPress, 因为一年下来也没写两篇,基本接近荒废,纯静态就够用,现在换成 Hexo,走线下编译。

    搜索功能成了问题,本想在 /api/** 下做个服务,懒得写代码就放弃了,最终方案是借助 Hexo 的 hexo-generator-json-content 插件 生成 JSON 索引,改造 NexT 主题内置的 local-server 界面来达到目的。

    Tracker

    Tracker 是我 2012 年写的一个工具,几年没有更新了,里面有部分 PHP 脚本,现在一一替换成 Node,能够正常跑起来,里面的功能没有细测。

    PS: 此工具后来被前百度同事集成到了 WEB 前端助手 这个 Chrome 插件中,并进行后续的维护,同时欢迎试用。

    Rhymer

    Rhymer 是前不久写的一个小应用,技术方案也是 PHP + MySql,现在数据迁移至 MongoDB,PHP 用 Node 全部重写。

    404

    最后,connect 如果没有命中所有地址规则,则响应一个 404 页面,该 404 页面的代码直接从老站点上搬过来。

    其它小问题

    由于技术方案差异,迁移过程中遇到一些小问题,不过都得到妥善解决:

    • 打包脚本现在采用 Webpack,很多 小 Demo 早期用了 Browserify 由于要替换资源进行过重新打包,经测试能正常跑进来,功能没有一一细测。
    • 动过的前端代码都改为 ES6 语法,存在混用的情况,最终都编译成 ES5,所以基本没啥问题。
    • mgdict 魔鬼辞典 是很早写的一个 PHP 应用,由于价值不大,改造有成本,最终放弃迁移,寿终正寢。
    • 由于存在多年,老服务器上还有一堆目录,目测没啥用,打个大包存档,或者留待二期迁移。

    (本文完)



沪ICP备19023445号-2号
友情链接