专栏首页腾讯云Elasticsearch Service想在外网访问腾讯云ES集群?搭建一个代理服务器吧!
原创

想在外网访问腾讯云ES集群?搭建一个代理服务器吧!

腾讯云Elasticsearch Service已经对部分通过内测申请的用户开放服务了,个别用户在使用腾讯云Elasticsearch集群的过程中,提出想通过外网访问集群的endpoint vip地址, 而不是在VPC内访问。对于用户的这个需求,腾讯云ES团队正在调研并规划中,因为考虑到目前腾讯云ES还没有用户权限认证功能,直接开放外网访问会有安全风险,所以目前没有对集群开放外网访问。对于一些急于通过外网访问ES集群的用户,可以通过腾讯云CVM云服务器快速搭建一个外网代理服务器,实现ES集群的外网访问。

创建CVM

通过CVM云服务器控制台创建一台CVM:

安装部署nginx

执行yum命令安装nginx

yum install nginx

配置nginx.conf

查看ES集群的内网endpoint地址:

修改/etc/nginx/nginx.conf配置文件,增加以下内容:

server {

        listen       9200;



        location / {

            proxy_pass http://172.16.0.39:9200;

        }

    }

配置CVM安全组

因为腾讯云当前的ES版本没有权限认证功能,所以为了安全起见,可以通过CVM的安全组功能限制能够访问ES的来源IP地址。

在CVM绑定的安全组中限制TCP:9200端口的来源IP为ES客户端的IP地址:

使用CVM绑定的外网IP访问ES集群

执行 curl 121.201.61.70:9200

{

  "name" : "1526908677000079909",

  "cluster_name" : "es-e06jswi5",

  "cluster_uuid" : "iPfOl_P4Q5-URHoBPGkVJg",

  "version" : {

    "number" : "5.6.4",

    "build_hash" : "8bbedf5",

    "build_date" : "2017-10-31T18:55:38.105Z",

    "build_snapshot" : false,

    "lucene_version" : "6.6.1"

  },

  "tagline" : "You Know, for Search"

}

增加http basic auth权限认证

为了进一步增加ES集群的访问安全性,可以在nginx中增加auth basic配置,设置访问ES集群的用户名密码:

server {

        listen       9200;



        location / {

            auth_basic           "closed site";

            auth_basic_user_file /etc/nginx/htpasswd;

            proxy_pass http://172.16.0.39:9200;

        }

    }

上述配置将用于访问ES集群的用户名和加密后的密码放置在/etc/nginx中的htpasswd文件中,文件内容为:

elastic:Xcp0L3LGmWIlw

对密码进行加密可用openssl passwd命令生成:

带用户名密码访问ES集群

执行命令:

curl 121.201.61.70:9200 -u elastic:123

避免代理服务器单点-使用腾讯云CLB

自建一台CVM部署nginx作为外网代理,可能会出现单点问题,如果这台CVM挂掉,ES就无法通过外网访问了。为了避免出现单点问题,可以使用腾讯云CLB负载均衡服务,申请一个CLB实例,购买两台CVM作为CLB的后端,在两台CVM中同时部署nginx反向代理内网ES。腾讯云CLB负载均衡服务可以对CVM中nginx服务进行健康检查,如果一台CVM挂掉或者CVM中的nginx挂掉,CLB就会切断CVM的入口流量,避免出现无法访问ES的情况。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在线不停服迁移自建ES集群至腾讯云ES

    在之前的文章Elasticsearch跨集群数据迁移之离线迁移中,我们介绍了如何在离线场景下把自建的ES集群或者在其它云厂商购买的ES集群迁移至腾讯云的ES, ...

    bellen
  • Elasticsearch跨集群数据迁移之离线迁移

    用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。如果业务可以停服或者可以暂...

    bellen
  • 总结最近半年对Elasticsearch开源项目的贡献

    自从2019年对Elasticsearch项目提交过一次代码之后,开始逐渐关注社区里的新动态,并且尝试去解决一些看起来容易上手的issue,通过这个过程去理解源...

    bellen
  • 腾讯云大学知识分享月直播预告 | AI赋能产品:如何寻找语音交互的业务场景

    语音交互作为最为自然的交互形态,必然在未来万物互联的世界中占据一席之地,深入理解VUI的各项特性,并寻找合适的语音交互场景,赋能产品创新,是每个AI从业者应该抓...

    腾讯云大学
  • 十分钟学技术系列 | Nginx从入门到上线

    前言 由于微信小程序要使用Https,但是又不能修改已有线上的配置。所以最简单的方法就是使用nginx转发,在nginx上使用https,然后再转发到内部服务器...

    小小科
  • nginx配置基于端口、域名的虚拟主机

    首先,进入主机电脑的C:\Windows\System32\drivers\etc目录 找到hosts文件,以管理员身份打开 添加172.16.11.82 ...

    宸寰客
  • Pandas-5.基本操作

    悠扬前奏
  • nginx代码阅读第一天

    https://www.kancloud.cn/digest/understandingnginx

    程序员小王
  • python三引号如何输入

    实际上3个单引号和3个双引号不经常用,但是在某些特殊格式的字符串下却有大用处。通常情况下我们用单引号或者双引号定义一个字符

    砸漏
  • 开源 | 点云定位 | 融合了分割识别的点云定位算法,在低功耗设备上达到10hz

    论文地址:http://n.ethz.ch/~cesarc/files/RAL2018_rdube.pdf

    CNNer

扫码关注云+社区

领取腾讯云代金券