Elasticsearch 代理 ESP

GPL
PHP
跨平台
2015-11-12
笑天居士

简介

  • 由于Elasticsearch没有提供权限管理功能(官方shield又收费),特开发此Proxy,可以针对Elasticsearch Rest的路径设置权限,可以指定信任IP,支持用户,群组授权

  • 当前版本0.01试用版。

  • 框架基于PHP-Swoole扩展开发,用fast-route库来做http route处理。

安装运行

环境:linux2.6+、php5.5+、mysql5.5+、swoole1.7.20+
下载:https://github.com/xtjsxtj/esp

tar zxvf esp.zip  
cd esp  
./bin/esp start  

查看当前server进程状态:
./bin/esp status

配置文件

系统级配置文件,全局生效,不能reload,只能restart
server_conf.php

<?php
class server_conf {
    public static $config=array(
        'server_name' => 'es_proxy',  //server名称 
        'log_level' => NOTICE,        //跟踪级别TRACE,DEBUG,INFO,NOTICE,WARNING,ERROR
        'listen' => 9501,             //listen监听端口
        'worker_num' => 1,            //工作进程数
        'daemonize' => true,          //是否以守护进程方式运行
        'log_file' => '/home/jfy/testprog/esproxy/proxy/index.log',  //log文件
    );   
}

工作进程配置文件,支持reload worker_conf.php

<?php
class worker_conf{
    public static $config=array(
        'log_level' => NOTICE,
        'es_url' => 'http://localhost:9200',
        'trust_ip' => [
            '127.0.0.1'
        ],
        'groups' => [
            'cpyf' => 'jfy,zyw',
        ],        
        'users' => [
            'jfy' => '123456',
            'zyw' => '123456',
        ],
        'auths' => [
            ['OPTIONS', '/{param:.+}', '*'], 
            ['GET',     '/{param:.+}', '*'],            
            ['POST',    '/{param1}/_search', '*'],            
            ['POST',    '/{param1}/{param2}/_search', '*'],            
            ['PUT',     '/kibana-int/{param:.+}', '*'],            
            ['DELETE',  '/kibana-int/{param:.+}', '@cpyf'],
        ],
    );
}

针对Elasticsearch的访问权限配置上,只需要修改worker_conf配置文件即可。

配置文件一看上去就应该明白了:

  • es_url,后端Elasticsearch http地址

  • trust_ip,信任的IP列表,不做任何权限限制

  • groups,用户组列表,组下可包含多个用户,用户必须存在于users配置中

  • users,用户列表,用户名 => 密码

  • auths,访问详细rest路径权限设置

      method restpath users
    • 多个用户以","分隔,用户组以@开头,如:jfy,@cpyf表示用户jfy和用户组cpyf中的所有用户都可以访问

    • "*"表示所有用户均可以访问

    • 当用户列表中指明用户或组时,http header中必须包括Basic Auth用户和密码信息:

      Authorization: Basic amZ5OjttMzQ1Ng==
    • method 支持数组方式 ["GET","POST"]

    • restpath 访问Elasticsearch的具体路径,支持正则表达式,详情参见:https://github.com/nikic/FastRoute

    • user 授权访问的用户

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

【转】通过一段汇编,加深对寄存器ESP和EBP的理解

一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。 下面是按调用约定__s...

2011/04/22 14:45
3.3K
2
善用EFI系统分区ESP

本文讲解如何利用ESP的特点更好地使用ESP,以及作者本人是如何使用ESP的。

2014/03/19 14:20
38.4K
6
学 Win32 汇编[18]: 关于压栈(PUSH)与出栈(POP) 之二

由于 "栈" 是由高到低使用的, 所以新压入的数据的位置更低. ESP 中的指针将一直指向这个新位置, 所以 ESP 中的地址数据是动态的. 每次 PUSH, ESP = ESP - x; 每次 POP, ESP = ESP + x; 其中的...

2014/09/26 15:35
21
0
Linux内核分析第一课作业 栈分析

汇编,栈分析

2016/02/28 23:25
153
1
汇编知识笔记

汇编小知识学习记录

2016/07/25 11:51
1
0
ESP8266开发课堂 - 开发环境搭建

#下载IDE集成开发环境 与通常做嵌入式如51、stm8s、stm32所使用的Keil MDK不同的是,Espressif提供的Open SDK基于gcc工具链,所以蘑菇云ESP8266开发课堂所使用的集成开发环境是Eclipse与其C...

2016/06/28 11:16
482
1
随笔记录

在资料没有收集完成前,记录一些有用的资料,日后再整理

2016/08/27 15:58
20
0
栈帧的含义和作用

栈帧的含义和作用 栈由栈帧组成,每个栈帧对应于一个(未执行完的)函数。接下来我们通过讲解栈帧的布局、形成和消亡来理解栈帧在函数调用时是如何起作用的。 栈帧的布局 图10.7所示是一个简...

2012/08/07 17:47
233
0
在gcc中使用intel风格的内联汇编

很简单,内联汇编使用asm(“.intel_syntax noprefix/n”)声明一下,以后的内联汇编就可以用intel风格了,构建可执行文件时给gcc加上-masm=intel参数。 先写一个小程序测试一下: [cpp] view...

2018/06/21 20:01
176
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部