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

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

创建CVM

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


image

安装部署nginx

执行yum命令安装nginx

yum install nginx

配置nginx.conf

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


image

修改/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地址:


image

使用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命令生成:


image

带用户名密码访问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的情况。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,253评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,423评论 19 139
  • 从零开始部署小程序服务器(腾讯云) 话说目前云已经很便宜了,腾讯有一个月的试用期,不过阿里云也有,而且对于学生认证...
    Lefe阅读 7,845评论 6 37
  • 2016年9月22日 周四 今天家里刷房子,早晨不到6:30两位刷房子的大姐就来了,一问年龄都和我相仿。她们马上换...
    魅力春天阅读 164评论 0 1
  • 有些焦虑,因为客户不接电话,因为每天不知所措,因为后面的路……
    活在这个世界阅读 139评论 0 0

友情链接更多精彩内容