Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,广泛用于负载均衡、缓存、SSL 终端和服务代理等场景。本篇将尝试使用 Nginx 代理 Easysearch 服务,方法同样适用于 Elasticsearch 和 Opensearch。
测试环境
- Easysearch 集群版本为 1.10.0,3 个节点
- Nginx 版本为 1.21.5
Nginx
计划使用 Nginx 将请求均匀分发到所有节点,关键配置如下:
http { upstream es-cluster { server 192.168.56.102:9200; server 192.168.56.102:9201; server 192.168.56.102:9202; } log_format es_log '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' 'upstream: $upstream_addr'; # 配置代理服务器信息 server { listen 80; server_name localhost; location / { proxy_pass https://es-cluster; #proxy_http_version 1.1; #proxy_set_header Connection ""; # 添加 Basic Auth 认证 auth_basic "Restricted Access"; # 认证提示信息 auth_basic_user_file /etc/nginx/.htpasswd; # 认证文件路径 # 使用自定义日志格式 access_log /var/log/nginx/elasticsearch_access.log es_log; } } }
复制
由于 Easysearch 开启了认证功能,需要 给 Nginx 创建一个认证文件。示例为 Nginx 配置了 admin 用户,大家根据情况自行调整。
echo "admin:$(openssl passwd -crypt yourpassword)" | sudo tee /etc/nginx/.htpasswd
复制
经过上面的配置,Nginx 会将访问日志记录在 /var/log/nginx/elasticsearch_access.log 中。
至此 Nginx 已经配置完毕,启动 Nginx 服务。
sudo systemctl start nginx
复制
测试
我们使用 curl 命令连续向 Nginx 发送 6 个查询请求,看看请求是否发送到 Easysearch 的所有节点。
curl localhost:80/infini/_search -uadmin:56939c1f6527d1a0d51c
复制
可以看到,如我们期待那样查询请求在所有节点间轮询。
文章转载自极限实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
INFINI Labs 产品更新 - Coco AI – 增强 AI 搜索、API 管理与性能优化等
极限实验室
110次阅读
2025-03-18 13:41:29
东方通TongHttpServer的安全特性解析
严少安
77次阅读
2025-03-17 23:15:48
INFINI Labs 产品更新 | Coco AI 0.3 发布 – 新增支持 Widget 外部站点集成
极限实验室
54次阅读
2025-04-07 23:19:57
控制器- deployment01
喵呜
21次阅读
2025-03-31 13:45:40
Easysearch VS Opensearch 数据写入与存储性能对比
极限实验室
19次阅读
2025-04-09 23:56:40
Nginx 的基础原理篇
巴韭特锁螺丝
18次阅读
2025-03-16 19:37:40
代理 Elasticsearch 服务:INFINI Gateway VS Nginx
极限实验室
12次阅读
2025-04-07 00:01:32
nginx 服务器篇
巴韭特锁螺丝
11次阅读
2025-03-17 10:03:41
Nginx 解决做反向代理时 静态资源图片、 js、css 访问不到
巴韭特锁螺丝
9次阅读
2025-03-14 00:02:06
如何使用 Grafana 连接 Easyearch
极限实验室
4次阅读
2025-04-12 23:30:19