基于ReactPHP,采用IO多路复用模型。
安装
通过composer安装
composer global require slince/spike *@beta
服务器与本地都需要执行此命令安装
配置服务端
使用Spike的前提是你需要有一台公网可访问的机器,这里假设你已经有一台机器.你可以使用下面两种方式开启服务端。
基于默认参数
执行下面命令以开启服务
$ spiked --address=127.0.0.1:8088
上述命令可以创建一个基本服务,如果你需要定制更多信息可以基于配置文件服务
基于配置文件
- 初始化一个配置文件
执行下面命令创建文件
$ spiked init --dir=/home/conf --format=json
支持yaml,xml,ini,json四种格式的配置文件,默认使用json,使用下面命令查看帮助
$ spiked init -h
- 打开配置文件,修改相关参数
- 基于配置文件开启服务
$ spiked --config=/home/conf/spiked.json
配置本地客户端
开启客户端需要先创建配置文件
- 初始化一个配置文件
执行下面命令创建文件
$ spike init --dir=/home/conf --format=json
使用下面命令查看帮助
$ spike init -h
- 打开配置文件,修改相关参数
- 基于配置文件开启服务
$ spike --config=/home/conf/spike.json
定义隧道
隧道的定义只在客户端,服务端不需要做任何配置,从而达到最简化配置。
目前支持http与tcp两种隧道
打开本地配置文件"spike.json", 修改tunnel一项;
- 添加http隧道
{
"protocol": "http",
"serverPort": 8086,
"proxyHosts": {
"www.foo.com": "127.0.0.1:80",
"www.bar.com": "192.168.1.101:8080"
}
}
启动客户端,访问 "http://www.foo.com:8086" , 服务将会被代理到本地"127.0.0.1:80"; 注意此处需要把 "www.foo.com" 解析到服务端所在机器上
- 添加tcp隧道
基于tcp协议的应用层协议都可使用本隧道代理,如:mysql,redis,ssh...等;下面是代理mysql服务的例子
{
"protocol": "tcp",
"serverPort": 8087,
"host": "127.0.0.1:3306"
}
执行下面命令访问本地mysql服务:
$ mysql -h 服务器地址 -P 8087
客户端身份认证
基于默认参数开启的服务端没有开启客户端身份认证服务,如果需要开启该服务则只能基于配置文件去启动服务端.
- 服务端启用认证服务
打开"spiked.json"文件,修改auth一项信息,然后重启服务
目前只支持简单的用户名密码认证方式,更多的认证方式后面会陆续加入.
- 修改客户端身份信息
打开本地"spike.json"文件,修改auth一栏信息,与服务端配置保持一致即可
日志配置
默认开启屏幕输出与文件两种形式的日志;前者会打印到控制台;后者会写入到指定文件;默认日志等级是"info",此项信息可以通过 修改配置文件"log"一项调整;
from https://github.com/slince/spike/blob/master/README-zh_CN.md日志是同步读写的,所以提升日志等级减少日志IO有助于提升服务的性能.
https://github.com/slince/spike
No comments:
Post a Comment