想在外网访问腾讯云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 删除。

编辑于

我来说两句

4 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

给Buildbot加上SSL,使用Nginx做反向代理

Buildbot是一个基于Python的持续集成系统,用于自动化软件构建,测试和发布。Buildbot自带内置的Web服务器并使用8010端口,为了使用SSL保...

1665
来自专栏编程坑太多

『中级篇』Docker 水平扩展和负载均衡(40)

PS:Docker的scale 可以扩展,也可以所有,他们自动来控制的。web=10 可以改成5 其中的6,7,8,9,10就被删除了。

1863
来自专栏强仔仔

利用Nginx负载均衡的访问SpringBoot服务,还有如何利用Nginx实现404,500等错误页面的拦截

今天给大家讲一些如何利用Nginx负载均衡的访问SpringBoot服务,还有如何利用Nginx实现404,500等错误页面的拦截。 首先第一步就是下载Ngin...

59210
来自专栏电光石火

如何让nginx显示文件夹目录

1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location / ...

17010
来自专栏醉生梦死

Centos6.9系统部分基础优化(更新时间2018/04/19)

注:此博客仅供参考,读者可根据自己的实际情况进行合理的配置,博客内容参考老男孩书籍《web集群实战》一书

743
来自专栏Python攻城狮

GitHub 系列之「向GitHub 提交代码」1.SSH2.生成SSH key3.GitHub 上添加 SSH key4.Push & Pull5.提交代码

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提...

592
来自专栏iOS开发随笔

React Native 升级和降级

1124
来自专栏你不就像风一样

在IDEA中构建Web项目流程

点击绿色的+号,如图所示,点一下 这一步很关键,目的是设置输出格式为war包,如果你的项目中已经有了,那就不需要再建了。有没有看右上角的Type

681
来自专栏DeveWork

修改WordPress登陆文件名wp-login.php,防密码被暴力破解

最近WordPress界出了条新闻:博客平台Wordpress网站遭遇大规模暴力破解攻击(原文附后)。看到这条消息,我立马到空间后台查看了下,发现确实是有很多来...

2165
来自专栏王大锤

使用Hexo在github上搭建个人博客

最近正好在学习前端开发,想着搭建一个属于自己的个人博客,把自己的技能树整理整理,温故而知新。

721

扫码关注云+社区