微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spike 基于 ReactPHP 的反向代理

程序名称:Spike

授权协议: MIT

操作系统: 跨平台

开发语言: PHP

Spike 介绍

Spike是一个可以用来将你的内网服务暴露在公网的使用PHP开发的快速的反向代理,基于ReactPHP,采用IO多路复用模型。

配置服务端

使用Spike的前提是你需要有一台公网可访问的机器,这里假设你已经有一台机器.你可以使用下面两种方式开启服务端。

执行下面命令以开启服务

$ spiked --address=127.0.0.1:8088

上述命令可以创建一个基本服务,如果你需要定制更多信息可以基于配置文件服务

执行下面命令创建文件

$ spiked init --dir=/home/conf --format=json

支持yaml,xml,ini,json四种格式的配置文件认使用json,使用下面命令查看帮助

$ spiked init -h

配置本地客户端

开启客户端需要先创建配置文件

执行下面命令创建文件

$ spike init --dir=/home/conf --format=json

使用下面命令查看帮助

$ spike init -h

定义隧道

隧道的定义只在客户端,服务端不需要做任何配置,从而达到最简化配置。

目前支持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协议的应用层协议都可使用本隧道代理,如: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”一项调整;

日志是同步读写的,所以提升日志等级减少日志IO有助于提升服务的性能

License

The MIT license. See MIT

Spike 官网

https://github.com/slince/spike

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐