通过 SSH 登录到您的服务器,更新可用软件包列表,并安装 curl
使用软件包的最新版本是良好的安全实践,尤其是在生产环境中。
接下来,使用 curl
下载并运行 Meilisearch 命令行安装程序
Meilisearch 安装程序是一组脚本,可确保您获得适合您系统的正确二进制文件。
接下来,您需要使二进制文件在您系统中的任何位置都能访问。将二进制文件移动到 /usr/local/bin
Meilisearch 现在正在运行,但它不可公开访问。
以 root 身份运行应用程序会使您面临不必要的安全风险。为了防止这种情况,为 Meilisearch 创建一个专用用户
在安装 Meilisearch 并采取第一步确保数据安全之后,您需要设置一个基本的配置文件。
首先,创建 Meilisearch 将在其上存储数据的目录
在本教程中,您将在服务器的本地磁盘中创建目录。如果您使用其他块存储,请在其中创建这些目录。
接下来,将默认配置下载到 /etc
最后,更新 meilisearch.toml
文件中的以下几行,以便 Meilisearch 使用您之前创建的目录来存储其数据,将 MASTER_KEY
替换为 16 字节的字符串
请务必选择一个安全的密钥(至少 16 字节长,并且由有效的 UTF-8 字符组成),并避免将其暴露在可公开访问的位置。
现在您已经配置了 Meilisearch 实例。
在 Linux 环境中,服务是一个可以在操作系统启动时启动并在后台持续运行的进程。如果您的程序因任何原因停止运行,Linux 将立即重启服务,有助于减少停机时间。[
服务文件是文本文件,告诉您的操作系统如何运行您的程序。
运行以下命令在 /etc/systemd/system
中创建一个服务文件
您的服务文件现在已准备就绪,使用 systemctl
激活该服务
使用 systemctl enable
,您告诉操作系统您希望它在每次启动时运行。然后,systemctl start
会立即启动 Meilisearch 服务。
通过检查服务状态来确保一切正常
您应该看到一条确认您的服务正在运行的消息
若查看状态显示报错 Error: Permission denied (os error 13)
很有可能是数据目录出了问题,重新执行命令
此时,Meilisearch 已安装并正在运行。它还受到可能发生的崩溃和系统重启的保护。
下一步是使您的实例可公开访问。
提示
如果您发送给 Meilisearch 的所有请求都由同一台机器上的另一个应用程序完成,那么您可以安全地跳过本节。
一个 反向代理 是一个应用程序,它将处理外部世界与您的应用程序之间的所有通信。在本教程中,您将使用 Nginx 作为您的反向代理来接收外部 HTTP 请求并将它们重定向到 Meilisearch。
首先,在您的机器上安装 Nginx
接下来,删除默认配置文件
Nginx 带有一组默认设置,例如其默认 HTTP 端口,这些设置可能与 Meilisearch 冲突。
创建一个新的配置文件,指定反向代理设置
最后,启用 Nginx 服务
您的 Meilisearch 实例现在可公开访问。
唯一剩下的问题是 Meilisearch 通过 HTTP 处理请求,没有任何额外的安全性。这是一个主要的安全漏洞,可能导致攻击者访问您的数据。
本教程假设您已注册域名,并且已正确配置其 DNS 的 A 记录
以指向您的 DigitalOcean 服务器的 IP 地址。有关更多信息,请参阅 DigitalOcean DNS 文档。
使用 certbot 在您的服务器上配置启用 HTTPS。
首先,在您的系统上安装所需的软件包
接下来,运行 certbot
输入您的电子邮件地址,同意条款和条件,然后选择您的域名。当提示您是否要自动重定向 HTTP 流量时,选择选项 2: Redirect
。
Certbot 将完成 Nginx 的配置。完成后,所有到您服务器的流量都将使用 HTTPS,并且您将完成保护您的 Meilisearch 实例。
您的安全证书必须每 90 天续订一次。Certbot 会自动安排续订。运行测试以验证此过程已到位
如果此命令没有返回错误,则您已成功在 Nginx 服务器中启用 HTTPS。
您已按照主要步骤来提供安全稳定的服务。由于反向代理、HTTPS 和 Meilisearch 的内置安全密钥的组合,您的 Meilisearch 实例现在已在一个安全且可公开访问的环境中运行。
参考文档:
在生产环境中运行 Meilisearch - Meilisearch 文档 - Meilisearch 搜索引擎
[1]
反向代理: https://www.keycdn.com/support/nginx-reverse-proxy[2]
Nginx: https://www.nginx.com/[3]
DigitalOcean DNS 文档: https://docs.digitalocean.com/products/networking/dns/getting-started/dns-registrars/[4]
certbot: http://certbot.openssl.ac.cn/[5]
在生产环境中运行 Meilisearch - Meilisearch 文档 - Meilisearch 搜索引擎: https://www.meilisearch.org.cn/docs/guides/deployment/running_production