Spike

基于 ReactPHP 的反向代理
授权协议 MIT
开发语言 PHP
所属分类 服务器软件、 代理服务器软件
软件类型 开源软件
地区 国产
投 递 者 陆涵畅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
  • 打开配置文件,修改相关参数

  • 基于配置文件开启服务

 $ 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"一项调整;

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

License

The MIT license. See MIT

  • 模糊测试简介 模糊测试概述 模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监控目标程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏等。 模糊测试是一项简单的技术,它用随机坏数据(也称做 fuzz)攻击一个程序,然后等着观察哪里遭到了破坏。但这一过程却能

  • 什么是敏捷开发中的Spike? Spike,如果需要翻译的话,中文可以翻译成“探针”,但是一般不会翻译而直接使用Spike这个词。 Spike可以理解为:以回答问题或收集信息为目的的任务,而不是生产非专业产品的任务。有时编写User Story时,无法很好地对其进行估算User Story Point,直到开发团队做一些实际工作来解决技术问题或设计问题为止。解决这一问题的方法是创建一个“Spike

  • 含spike-in的单细胞分析 #需要格外注意的一点是:如果实验设计中加入的spike-in #transcripts(比如ERCC),在比对时一定要将这些参考序列加入到我们的参考基因组中,再进行比对。否则可以理解加了也是白加。 #数据包,提供很多示例scRNA-seq表达矩阵信息 https://www.jianshu.com/p/a70c831c95f5 $ head fastqid.txt

 相关资料
  • React (Node.PHP) 是一个 PHP 开发的平台,用于构建快速、可伸缩的网络应用,可用于事件驱动的、无堵塞的 I/O 模型,特点是轻量级而且高效率,特别适合用于数据敏感的实时应用交互。 示例代码: require 'vendor/autoload.php';$stack = new React\Espresso\Stack(function ($request, $response)

  • 我正在为一个客户配置一个相当复杂的应用程序,并且被反向代理模型所困扰。就我的理解而言,我们应该将proxy_pass/uwsgi_pass发送到内部endpoint地址(172.30.0.0/16),比如 appname . project . SVC . cluster . local 但是,这些地址虽然可从构成应用的容器内进行 DNS 解析,但无法访问。容器似乎从 10.200.0.0/14

  • 什么是反向代理 反向代理(Reverse Proxy)方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 举个例子,一个用户访问 http://www.example.com/readme,但是 www.example.com 上并不存在

  • 反向代理是一个 V2Ray 的附加功能,可以把服务器端的流量向客户端转发,即逆向流量转发。 反向代理功能在 V2Ray 4.0+ 可用。目前处于测试阶段,可能会有一些问题。 反向代理的大致工作原理如下: 假设在主机 A 中有一个网页服务器,这台主机没有公网 IP,无法在公网上直接访问。另有一台主机 B,它可以由公网访问。现在我们需要把 B 作为入口,把流量从 B 转发到 A。 在主机 A 中配置一

  • Spike PHPCheckStyle 用来帮助 PHP 程序员检查代码中一些常规的问题,要求 PHP 5.0 或者更新的版本。

  • 我正在尝试用RELU实现神经网络。 输入层- 以上是我的神经网络结构。我对这个relu的反向传播感到困惑。对于RELU的导数,如果x 有人能解释一下我的神经网络架构的反向传播“一步一步”吗?