ESP Elasticsearchエージェント(PHP Swoole)
5467 ワード
Elasticsearch Proxy (ESP)
概要Elasticsearchは権限管理機能(公式shieldは有料)を提供していないため、このProxyを開発し、Elasticsearch Restの経路に権限を設定することができ、信頼IPを指定することができ、ユーザーをサポートすることができ、グループ授権 現行バージョン0.01試用版. フレームワークはPHP-Swoole拡張に基づいて開発され、fast-routeライブラリでhttp route処理を行う.
インストール運転
環境:linux 2.6+、php5.5+、mysql5.5+、swoole1.7.20+ダウンロード:https://github.com/xtjsxtj/esp
プロファイル
システムレベルのプロファイル、グローバル有効、reload不可、restart server_のみconf.php
ワークプロセスプロファイル、reload workerをサポートconf.php
Elasticsearchのアクセス権構成では、worker_を変更するだけです.confプロファイルでいいです.
プロファイルが表示されると、次のことがわかります. es_url,バックエンドElasticsearch httpアドレス trust_ip,信頼できるIPリスト,権限制限なし groups,ユーザグループリスト,グループの下に複数のユーザを含めることができ,ユーザはusers構成に存在する必要がある users,ユーザリスト,ユーザ名=>パスワード auths,アクセス詳細restパス権限設定 methodサポート配列方式["GET","POST"] restpathはElasticsearchの特定のパスにアクセスし、正規表現をサポートします.詳細は、次のを参照してください.https://github.com/nikic/FastRoute userアクセス許可ユーザー 複数のユーザは「,」で区切られ、ユーザグループは@で始まる.例えばjfy,@cpyfは、ユーザjfyとユーザグループcpyfのすべてのユーザが にアクセスできることを示す."*"は、すべてのユーザーがアクセスできることを示します ユーザリストにユーザまたはグループが指定されている場合、httpヘッダにはBasic Authユーザとパスワード情報が含まれている必要があります:
概要
インストール運転
環境:linux 2.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プロファイルでいいです.
プロファイルが表示されると、次のことがわかります.
method restpath users
Authorization: Basic amZ5OjttMzQ1Ng==