宝塔面板如何安装并配置Elasticsearch?在宝塔面板中部署高性能搜索

2次阅读

需手动安装JDK 17并配置JAVA_HOME,下载解压elasticsearch至/www/server/es-search,修改elasticsearch.yml绑定0.0.0.0及禁用xpack安全,调低jvm内存,创建esuser用户授权并后台启动,最后通过宝塔反向代理暴露9200端口。

宝塔面板如何安装并配置Elasticsearch?在宝塔面板中部署高性能搜索

如果您希望在宝塔面板中部署Elasticsearch以实现高性能全文搜索能力,则需绕过宝塔官方应用商店的限制,采用手动方式安装并配置独立运行的Elasticsearch服务。以下是具体实施步骤:

一、准备Java运行环境

Elasticsearch 8.x 版本要求 Java 17 或更高版本,且必须为 JDK(含 JRE),不能仅安装 JRE。宝塔默认未预装兼容版本,需手动部署。

1、登录宝塔面板,在左侧菜单点击软件商店,搜索并安装JDK 17(推荐使用 oracle JDK 17 或 OpenJDK 17 构建版)。

2、安装完成后,在终端执行命令验证:java -version,确认输出中包含17.x.x字样。

3、执行echo $JAVA_HOME,若无输出,则需手动设置:编辑/etc/profile,追加两行:export JAVA_HOME=/www/server/jdk17export PATH=$JAVA_HOME/bin:$PATH,随后运行source /etc/profile生效。

二、下载并解压Elasticsearch

直接使用 Elasticsearch 官方 linux 发行包可避免编译依赖问题,且便于后续升级维护。需选择与服务器架构匹配的 tar.gz 包(通常为 x86_64)。

1、进入/www/wwwroot/目录,执行:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.0-linux-x86_64.tar.gz(请将链接替换为当前最新稳定版地址)。

2、执行解压命令:tar -xzf elasticsearch-8.15.0-linux-x86_64.tar.gz,生成目录elasticsearch-8.15.0

3、重命名为易识别名称:mv elasticsearch-8.15.0 es-search,并将该目录移至/www/server/下,即最终路径为/www/server/es-search

三、配置Elasticsearch运行参数

Elasticsearch 默认绑定本地回环地址且启用安全认证,需调整网络绑定、内存分配及安全设置以适配宝塔托管环境。

1、编辑配置文件:vi /www/server/es-search/config/elasticsearch.yml,取消以下行注释并修改值:

2、设置网络监听:network.host: 0.0.0.0,允许外部访问;http.port: 9200保持默认;discovery.type: single-node启用单节点模式。

3、关闭内置安全功能(仅限内网可信环境):xpack.security.enabled: false;如需启用 https 认证,须额外配置证书路径及密码。

4、编辑 JVM 配置文件:vi /www/server/es-search/config/jvm.options,将-Xms1g-Xmx1g分别改为-Xms512m-Xmx512m(根据服务器内存总量合理设定,建议不超过物理内存 50%)。

四、创建专用运行用户并授权

Elasticsearch 禁止以 root 用户启动,必须创建非特权用户,并赋予对应目录完整读写权限,否则服务无法启动。

1、执行命令创建用户:useradd -m -s /bin/bash esuser

2、设置密码(可选,仅调试时需要):passwd esuser

3、修改目录所有权:chown -R esuser:esuser /www/server/es-search

4、切换用户测试启动:su – esuser -c “/www/server/es-search/bin/elasticsearch -d”,若无报错则后台运行成功。

五、配置宝塔面板反向代理与防火墙

为保障安全性并统一管理端口,应通过宝塔的网站反向代理功能暴露 Elasticsearch HTTP 接口,同时关闭直接端口暴露。

1、在宝塔面板中新建一个网站,域名填写为es.yourdomain.com(或使用服务器 IP + 子目录),根目录可任意指定(如/www/wwwroot/es-proxy)。

2、进入该网站的反向代理设置页,添加规则:目标URL填 http://127.0.0.1:9200,缓存关闭,提交保存。

3、进入安全页面,检查9200 端口是否处于关闭状态;若开启,立即删除该放行规则,确保仅通过 nginx 反向代理访问。

4、执行命令验证代理是否生效:curl http://es.yourdomain.com,返回包含“name”“cluster_name”等字段的 json 响应即表示配置成功。

text=ZqhQzanResources