KeystoneJS 在 Raspberry Pi 上登录太慢的问题
发布于 10 年前 作者 russj 4133 次浏览 最后一次编辑是 8 年前 来自 分享

关于 KeystoneJS,请参见 JsNoder.com

最近我成功地把一个 KeystoneJS 应用装在了一个 Raspberry Pi Model B 上,系统是用的 Raspbian Wheezy 2014-09-09. 速度其实还不错 (超频到 900mhz),如果用户较少的话普通用用没有问题。但就是 login 的时候特慢,要 20~30 秒左右。 试过用本地的 MongoDB 和远程 MongLab 都这样,忒慢。 后来发现是 JavaScript 的 bcrypt 性能问题。换成 c/c++ 的就可以了,登录验证只要 2~3 秒完成,完全可以接受。发现 Node.js 好像至少有两个纯 js 的 bcrypt 包,一个是 bcryptjs, 貌似 Ghost 就是用的这个包,参见这个 博客Ghost Issue #1207。所以如果要在 Raspberry Pi 上使用 Ghost 也得更换 bcrypt 包。另外一个就是 KeystoneJS 使用的 bcrypt-nodejs 。

如何更换:

  1. 先转到 Keystone 的目录
    cd /your/keystoneapp/path
  2. 安装 c/c++ 版的 bcrypt 包 npm install bcrypt
  3. 更换 Keystone 的密码包。打开 sudo nano node_modules/keystone/lib/fieldTypes/password.js
  4. 然后在编辑器里,大概第7行, bcrypt = require(‘bcrypt-nodejs’), 更改为 bcrypt = require(‘bcrypt’), 搞定。这样就可以在 Raspberry Pi 上比较流畅的使用 Keystone 应用了。

JsNoder.com

2 回复

有道理。bcrypt还真对CPU是个考量。

不过也有人说 bcrypt 慢是防 brute force 破解的

回到顶部