当前位置: 首页 > news >正文

如何使用 Nginx 代理 Easysearch 服务

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


可以看到,如我们期待那样查询请求在所有节点间轮询。

http://www.dtcms.com/a/113457.html

相关文章:

  • 洛谷题单3-P5725 【深基4.习8】求三角形-python-流程图重构
  • C语言求3到100之间的素数
  • C++蓝桥杯实训篇(二)
  • Java 逐梦力扣之旅_[204. 计数质数]
  • 大模型持续学习方案解析:灾难性遗忘的工业级解决方案
  • 递归实现组合型枚举(DFS)
  • 蓝牙跳频扩频技术的作用:提升抗干扰能力与通信可靠性的核心机制
  • 道路裂缝数据集CrackForest-156-labelme
  • 设计模式简述(五)建造者模式
  • 小小模拟器 1.2.1 | 免登录无广告,畅玩经典游戏内置金手指
  • 【深度学习新浪潮】视觉与多模态大模型文字生成技术研究进展与产品实践
  • 字节二面:TCP 链接中,接收方不调用 recv,会出现什么情况?——拆解大厂面试题(校招)
  • css flex布局 让子元素在最右边技巧
  • 【移动计算】:AndroidStudio安装和项目搭建【2019:版本3.5.2】
  • 【书籍】DeepSeek谈《人月神话》
  • mofish软件(MacOS版本)手动初始化
  • Vue 3 生命周期钩子详解
  • 记录_文件操作
  • C# 程序脱壳,去除强签名StrongNameRemove
  • python加载训练好的模型并进行叶片实例分割预测
  • B树和B+树的区别(B Tree B+ Tree)
  • Windows扫描功能在哪?如何打开?如何使用自带的扫描程序进行扫描
  • Python实现ssh自动连接
  • 对比学习中的NCE(Noise-Contrastive Estimation)和InfoNCE(SimCLR)损失函数+案例(附SimSiam分析)
  • C-S模式之实现一对一聊天
  • 【MATLAB第113期】基于MATLAB的EFAST扩展傅里叶幅度敏感性分析方法(有目标函数)
  • Linux 下 日志系统搭建全攻略
  • 【算法】滑动窗口
  • 使用 ResUNet++、增强对结直肠息肉分割的图像识别综合研究
  • 【嵌入式学习5】PyQt5注册界面 - 自定义信号和槽