网站
托管插件: Postgres 和 Redis
The Addons tab lets you attach a managed PostgreSQL database or a managed Redis instance to a site without building or maintaining a server for it. Kapsule provisions it, gives you a connection…
"Addons"选项卡让你为网站附加受管的PostgreSQL数据库或受管的Redis实例,无需构建或维护服务器。Kapsule会供应它,为你提供连接字符串,并在移除时彻底清理它。
Addons的位置
打开网站,点击该网站,在网站选项卡条中打开设置菜单,然后选择Addons。该页面的标题是受管加载项。
目录中有两个选项:
| 加载项 | 典型用途 |
|---|---|
| PostgreSQL | 非MySQL应用的主要数据存储 |
| Redis | 缓存、会话存储和后台作业队列 |
这些与标准托管网站附带的MySQL数据库不同。该数据库位于文件,然后是数据库选项卡,无需供应,请参见通过SSH隧道连接到数据库。

请求加载项
- 在添加受管数据库部分中找到加载项。
- 点击添加到网站。
该请求立即被记录,加载项出现在你的加载项中,带有待处理徽章和等待供应者的说明。该页面每15秒刷新一次,所以你可以让它保持打开。
后台作业每几分钟拾取一次待处理的请求,为你的网站创建一个专用数据库和专用用户,并写回一个加密的连接字符串。状态随后移动到活跃。
请求或移除加载项需要sites:write权限。只读团队成员可以查看存在哪些加载项及其状态,但按钮被隐藏。
每个网站一个
一个网站可以持有一个PostgreSQL加载项和一个Redis加载项。要求同一类型的第二个会被拒绝,并显示一条消息说它已被供应,目录在安装后隐藏一个选项。安装两个后,目录部分会读取所有可用的加载项已安装。
读取状态
| 状态 | 含义 |
|---|---|
| PENDING | 已请求,排队等待供应者 |
| PROVISIONING | 现在正在创建 |
| ACTIVE | 准备使用 |
| FAILED | 供应未完成,原因显示在行上 |
| DELETED | 已移除,不再列出 |
失败行在其下方显示实际错误文本,而不是一般性消息。如果原因不是你可以采取行动的事,请在支持工单中逐字引用它,请参见打开支持工单。
获取连接字符串
加载项活跃后,其行显示一个隐蔽的连接字符串,密码被点号替换,所以你可以一目了然地确认主机和数据库名称,而无需暴露凭证。
点击复制连接将完整的连接字符串放到你的剪贴板。它在服务器端为该一个请求解密,永远不会在页面上打印,所以屏幕共享和截图不会泄露它。每次显示都会写入网站的审计跟踪,并出现在网站活动日志中。
该字符串采用每个引擎的常规URL格式,携带为该网站创建的主机、端口、用户、密码和数据库名称。
在你的应用中使用它
将连接字符串粘贴到应用读取其配置的地方。在Node.js网站上,合适的地方是Secrets选项卡,在DATABASE_URL或REDIS_URL等键下,在生产环境中。
不要将连接字符串硬编码到你提交的文件中。它包含活动密码。如果它到达git远程,则必须将其视为已泄露,唯一真正的解决方案是删除加载项并请求一个新加载项,因为凭证无法从面板中原位旋转。
移除加载项
点击行上的删除。KPanel要求你确认,并直言不讳地说明会发生什么:这会移除受管数据库,数据无法恢复。
该行立即被标记为已删除,供应者在下一次通过时清理底层数据库和用户。现有连接在该清理过程中被终止。
在删除受管加载项时不会进行备份,也没有撤销。如果其中有任何内容你想保留,请在加载项仍然活跃且连接字符串仍然有效时,使用pg_dump或redis-cli --rdb将其转储。
在选项之间选择
使用PostgreSQL当你的应用需要关系数据库并针对Postgres编写时:强约束、事务、JSON列和全文搜索,否则你必须另外添加。
使用Redis用于允许消失的内容:缓存片段、速率限制计数器、会话存储和作业队列。将其视为快速且易失的,而不是记录系统。
使用内置MySQL数据库用于WordPress和任何已针对MySQL编写的内容。将Postgres加载项添加到WordPress网站没有任何用处,因为WordPress无法与其通信。
故障排除
加载项已待处理很长时间。 供应者按计划运行,而不是立即运行。让页面保持打开,因为它会自动刷新,然后检查回来。如果在几次通过后还没有移动,请使用网站域和加载项类型打开支持工单。
供应失败。 阅读行上的错误。删除失败的加载项并再次请求它,这是安全的:失败的行从未在其后面有活动数据库。
复制连接什么都不做。 某些浏览器在选项卡未处于焦点时会阻止剪贴板写入。首先点击页面,然后再次点击按钮。
应用无法连接。 按顺序检查三件事:加载项状态是否为活跃,你是否复制了字符串而不是重新输入,你的应用是否读取你实际设置的值而不是来自以前部署的过时值。通常需要重启才能读取新配置。
重新部署后连接被拒绝。 确认配置中的连接字符串仍然与此页面上的匹配。删除并重新请求加载项会创建新的用户和新的密码,所以旧字符串不会工作。
接下来去哪里
- 为网站存储应用密钥,保留连接字符串的合适地方。
- 通过SSH隧道连接到数据库用于内置MySQL数据库。
- 网站设置用于其余的网站级配置。