MeiliSearch作为服务如何在服务器中自动运行
Meilisearch是一个强大且快速的开源搜索引擎,内置于Rust. 它旨在为用户提供非常有用和可定制的搜索体验,包括开箱即用的功能,例如任何类型的项目的错字容错、过滤和同义词。
运行一个用于测试目的的 Meilisearch 实例非常容易,并且可以通过多种方式完成:使用 Docker、Homebrew、Aptitude、二进制文件、简单的curl,甚至是源代码。
在 Linux 环境中,systemd是一个可以在操作系统启动时启动的进程,它将在后台继续运行。它的最大优势之一是让您的程序随时可用。即使发生一些执行问题或崩溃,服务也会重新启动,您的程序将再次运行。
systemd允许您创建和管理自己的自定义服务。为了确保 Meilisearch 始终响应您的请求,您可以构建自己的服务。这样,您将确保其在发生崩溃或系统重新启动时的可用性。如果出现上述任何一种情况,systemdMeilisearch 会自动重启。
首先在/etc/systemd/system文件夹下创建一个meilisearch.service文件,把下面的代码放进去[Unit] Description=Meilisearch After=systemd-user-sessions.service [Service] Type=simple ExecStart=/usr/local/meilisearch --http-addr 127.0.0.1:7700 --env production --master-key Zm6J76XT6d84f3Wh [Install] WantedBy=default.target
meilisearch.service中的配置参数
1、“/usr/local/meilisearch”是meilisearch所在的地址。
2、“--http-addr”是HTTP地址和端口,设置Meilisearch将使用的 HTTP 地址和端口
3、“--env”是配置实例的环境。值必须是production或development。production:必须设置主密钥,搜索预览界面被禁用; development:设置主密钥是可选的,搜索预览已启用。
注意:当服务器环境设置为 时development,不强制提供主密钥。这在调试和原型设计时很有用,但在其他情况下很危险,因为 API 路由不受保护。
4、“--master-key”是设置实例的主密钥。--env设置为production时必须提供主密钥,如果没有设置主密钥,那么 Meilisearch 将抛出错误并拒绝启动。如果development环境中没有提供主密钥,则所有路由都将不受保护且可公开访问。
使用Nginx创建反向代理
解析域名到服务器上,在网站的nginx配置文件中监听7700端口,使用Nginx创建反向代理,Nginx 将接收外部 HTTP 请求并将其重定向到 Meilisearch。当 Meilisearch 完成其惊人的工作时,它会将其响应传达给 Nginx,然后 Nginx 会将后者传输给最初发送请求的用户。这是隔离和保护任何应用程序的常用方法
server { listen 80; server_name search.vipshare8.com; location / { proxy_pass http://127.0.0.1:7700; } }
Nginx修改配置文件后需要重启Nginx服务,反向代理在安全性、性能、可伸缩性和日志记录方面非常有用。
# 重新加载操作系统守护进程/服务 systemctl daemon-reload # 启用并启动Nginx服务 systemctl enable nginx systemctl restart nginx
现在你需要enable告诉操作系统我们希望它在每次启动时运行 Meilisearch。然后您可以start使该服务立即运行。通过检查服务确保一切工作顺利status
# 设置服务meilisearch systemctl enable meilisearch # 启动meilisearch服务 systemctl start meilisearch # 验证服务是否正在真实运行 systemctl status meilisearch
至此,Meilisearch每次服务器启动都会自动运行。它免受最终崩溃、系统重新启动以及运行时可能发现的大多数问题的影响。Meilisearch现在已经启动,部署在生产环境中,使用安全的 API 密钥,并由反向代理 Nginx 提供服务。您现在应该能够从外部向您的服务器发送请求。打开您的网络浏览器并访问:( http://search.vipshare8.com),显示如下图,那表示你配置成功过了。
评论列表