在 DigitalOcean 上部署 Meilisearch 实例
第一部分:在 Droplet 上部署 Meilisearch
1. 创建一个新的 Droplet
DigitalOcean Droplet 是基于 Linux 的虚拟机,您可以在其中运行您的应用程序。
登录到您的 DigitalOcean 账户后,点击页面右上角的绿色 “Create” 按钮,然后选择 “Droplets”。
请参考 DigitalOcean 的文档,了解更多关于创建和配置 Droplet 的信息。
2. 为您的 Droplet 选择一个区域
选择您想要部署 Droplet 的区域。请记住,您离用户越近,他们使用 Meilisearch 的搜索体验就越好。
3. 选择 Meilisearch 镜像
默认情况下,DigitalOcean 显示 “OS” 选项卡。选择 “Marketplace” 选项卡,搜索 “Meilisearch”,然后选择镜像。
4. 选择 Droplet 大小
在这里您可以选择您的 Droplet 将拥有的 RAM、存储和 CPU 核心数量。根据您的需求选择您的方案。当处理大型数据集时,内存优化选项将为您提供更好的结果。
5. 选择一种身份验证方法
您可以使用 SSH 密钥或密码来访问您的 Droplet。我们建议使用 SSH 密钥,因为它们更安全。
选择您想要添加到您的 Droplet 的 SSH 密钥。如果您没有密钥,按照 DigitalOcean 的说明创建密钥。
6. 选择您的 Droplet 名称和标签
在这里您可以选择在您的 DigitalOcean 账户中各处可见的名称。Droplet 名称只能包含字母数字字符、破折号和句点。
标签非常适合用于管理资源。它们是您分配给 droplet 的自定义标签。标签可以包含字母、数字、冒号、破折号和下划线。您可以为一个资源使用多个标签。尝试根据 droplet 的功能命名标签。
7. 点击 “Create Droplet”
8. 测试 Meilisearch
创建完成后,点击 Droplet 的公共 IP 地址以复制它
将其粘贴到您的浏览器中。如果您可以访问本地预览,则 Meilisearch 已准备就绪,可以使用了。
第二部分:在您的 Meilisearch Droplet 中配置生产设置
要配置 Meilisearch 以在 DigitalOcean Droplet 上用于 生产环境,使用 SSH 访问您的 Droplet,脚本会引导您完成整个过程。或者,使用 Droplet 控制台 通过您喜欢的浏览器进行访问。
1. 将您的域名指向您的 Droplet
如果您想使用自己的域名,请单击“创建”按钮并选择“域名/DNS”。
在“输入域名”字段中输入您的域名,然后单击“添加域名”。
这应该可以开箱即用。您的域名现在应该已链接到您的 Meilisearch 实例。使用 curl
访问它并验证 DNS 是否已正确配置。
curl -v http://<your-domain-name>/health
服务器应答复 200 OK
状态代码和以下正文 {"status": "available"}
…
HTTP/1.1 200 OK
…
{"status": "available"}
…
2. 设置主密钥和 SSL (HTTPS)
Meilisearch 当前在开发环境中运行。我们尚未设置主密钥,这意味着任何人都可以读取/写入 Meilisearch 实例。由于我们尚未使用 HTTPS,因此此配置对于生产环境是不安全的。
要开始配置过程,请通过 SSH 连接到您的 Droplet,或在您喜欢的浏览器中使用 Droplet 控制台并按照说明进行操作。
2.1. 运行配置脚本
打开终端并使用您从 DigitalOcean 获取的 IP 地址启动新的 SSH 连接。
在您的终端中输入以下命令,然后按 Enter 键以建立连接
ssh root@DIGITAL_OCEAN_IP_ADDRESS
输入 yes
并按 Enter 键以接受身份验证过程。
注意
如果您正在使用 Droplet 控制台,则不需要上述命令。
脚本将自动运行,询问您的设置和所需配置。如果您想随时再次运行此脚本,可以使用以下命令执行此操作
meilisearch-setup
如果您使用 Droplet 控制台,相同的脚本将自动运行。
3. 享受您开箱即用的 Meilisearch Droplet
您的 Meilisearch Droplet 已准备好在生产环境中使用。
要检查一切是否运行顺畅,请对 /health
路由执行 HTTP 调用
curl -v https://<your-domain-name>/health
服务器应答复 200 OK
状态代码和以下正文 {"status": "available"}
,如下例所示
…
HTTP/1.1 200 OK
…
{"status": "available"}
…