<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spike基于 ReactPHP 的反向代理

          聯(lián)合創(chuàng)作 · 2023-10-01 10:40

          Spike是一個可以用來將你的內(nèi)網(wǎng)服務(wù)暴露在公網(wǎng)的使用php開發(fā)的快速的反向代理,基于ReactPHP,采用IO多路復用模型。

          配置服務(wù)端

          使用Spike的前提是你需要有一臺公網(wǎng)可訪問的機器,這里假設(shè)你已經(jīng)有一臺機器.你可以使用下面兩種方式開啟服務(wù)端。

          基于默認參數(shù)

          執(zhí)行下面命令以開啟服務(wù)

          $ spiked --address=127.0.0.1:8088

          上述命令可以創(chuàng)建一個基本服務(wù),如果你需要定制更多信息可以基于配置文件服務(wù)

          基于配置文件

          • 初始化一個配置文件

          執(zhí)行下面命令創(chuàng)建文件

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

          支持yaml,xml,ini,json四種格式的配置文件,默認使用json,使用下面命令查看幫助

          $ spiked init -h
          • 打開配置文件,修改相關(guān)參數(shù)

          • 基于配置文件開啟服務(wù)

           $ spiked --config=/home/conf/spiked.json

          配置本地客戶端

          開啟客戶端需要先創(chuàng)建配置文件

          • 初始化一個配置文件

          執(zhí)行下面命令創(chuàng)建文件

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

          使用下面命令查看幫助

          $ spike init -h
          • 打開配置文件,修改相關(guān)參數(shù)

          • 基于配置文件開啟服務(wù)

          $ spike --config=/home/conf/spike.json

          定義隧道

          隧道的定義只在客戶端,服務(wù)端不需要做任何配置,從而達到最簡化配置。

          目前支持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" , 服務(wù)將會被代理到本地"127.0.0.1:80"; 注意此處需要把 "www.foo.com" 解析到服務(wù)端所在機器上

          • 添加tcp隧道

          基于tcp協(xié)議的應用層協(xié)議都可使用本隧道代理,如:mysql,redis,ssh...等;下面是代理mysql服務(wù)的例子

          {
              "protocol": "tcp",
              "serverPort": 8087,
              "host": "127.0.0.1:3306"
          }

          執(zhí)行下面命令訪問本地mysql服務(wù):

          $ mysql -h 服務(wù)器地址 -P 8087

          客戶端身份認證

          基于默認參數(shù)開啟的服務(wù)端沒有開啟客戶端身份認證服務(wù),如果需要開啟該服務(wù)則只能基于配置文件去啟動服務(wù)端.

          • 服務(wù)端啟用認證服務(wù)

          打開"spiked.json"文件,修改auth一項信息,然后重啟服務(wù)

          目前只支持簡單的用戶名密碼認證方式,更多的認證方式后面會陸續(xù)加入.

          • 修改客戶端身份信息

          打開本地"spike.json"文件,修改auth一欄信息,與服務(wù)端配置保持一致即可

          日志配置

          默認開啟屏幕輸出與文件兩種形式的日志;前者會打印到控制臺;后者會寫入到指定文件;默認日志等級是"info",此項信息可以通過 修改配置文件"log"一項調(diào)整;

          日志是同步讀寫的,所以提升日志等級減少日志IO有助于提升服務(wù)的性能

          License

          The MIT license. See MIT

          瀏覽 22
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91成人精品在线视频 | 亚洲高清免费在线 | 黄色视频在线看网站 | 大鸡巴操小穴 | 欧洲不卡视频 |