讯息:免费代理服务器国外(国外免费代理服务器)
上述命令会用提供的脚本启动 Pipy 服务器。敏锐的用户可能已经注意到,我们通过环境变量PIPY_CONFIG_FILE提供了一个远程 Pipy 脚本的链接,而不是一个本地文件,Pipy 足够智能,可以处理这种情况。
下面是tutorial/01-hello/hello.js文件的内容,供参考:
pipy().listen(8080) .serve!”。
(相关资料图)
既然我们已经通过上面的docker run命令暴露了本地 8080 端口,那么我们可以在同一端口上进行测试了:
$ curl !”。
如果是出于学习、开发或调试的目的,建议在本地安装 Pipy(从源代码构建 Pipy 或针对你的操作系统下载一个预构建版本),因为它提供了 Web 管理控制台以及相关的文档和教程。
安装到本地后,运行pipy,不需要任何参数,就可以在6060端口启动管理控制台,但如果要监听不同的端口,可以通过–admin-port=参数配置。
监听 6060 端口的 Pipy 管理控制台
要从源代码构建 Pipy 或针对你的操作系统安装预编译的二进制文件,请参考PipyGithub 库的 README.md 文件。
通过 CLI 运行要启动 Pipy 代理,可以用一个 PipyJS 脚本文件运行 Pipy。例如,如果需要一个简单的回显服务器,针对每个传入的请求都用所接收到的消息体进行响应,那么就用脚本tutorial/01-hello/hello.js:
$ pipy tutorial/01-hel lo/hello.js另外,在开发和调试时,可以启动带有内置 Web UI 的 Pipy:
$ pipy tutorial/01-hello/hello.js –admin-port=6060显示命令行选项$ pipy –help列出内置过滤器及其参数$ pipy –list-filters$ pipy –help-filters 前文从概念和技术上对 Pipy 做了一个简短的介绍,这些内容也是我们实现一个支持缓存和负载均衡的网络代理所需要了解的,这一点我们在下一节会看到。
编写一个网络代理假设我们正在运行不同服务的单独实例,我们想要添加一个代理,根据请求的 URL 路径将流量转发到相关服务。这样做的好处是,我们只需要提供一个 URL,并在后端扩展我们的服务,而用户不需要分别记住不同服务的 URL。在正常情况下,服务会在不同的节点上运行,每个服务可以有多个实例在运行。假设在这个例子中,我们正在运行下面的服务,我们希望根据 URI 将流量分配给它们。
服务
URI
主机:端口
service-hi
/hi/*
"127.0.0.1:8080", "127.0.0.1:8082"
service-echo
/echo
"127.0.0.1:8081"
service-tell-ip
/ip/*
"127.0.0.1:8082"
Pipy 的脚本是用 JavaScript 编写的,你可以用任何文本编辑器来编辑它们。另外,如果你在本地安装了 Pipy,就可以使用 Pipy 提供的 Web 端管理 UI,它提供了语法高亮、自动完成、提示等特性,你甚至可以运行脚本,所有这些都在同一个控制台上。
好了,让我们启动一个 Pipy 实例,不需要任何参数,这样,Pipy 管理控制台将在 6060 端口启动。现在,打开你喜欢的 Web 浏览器,导航到 )。
创建一个 Pipy 程序将代码和配置分开是一种很好的设计实践。Pipy 通过插件(你可以把它想成是 JavaScript 模块)来支持这种模块化设计。也就是说,我们将把配置数据存储在 config 文件夹下,把编码逻辑存储在 plugins 文件夹下不同的文件中。主代理服务器脚本将存储在根目录下,主代理脚本(proxy.js)将包含并组合这些单独的模块所定义的功能。 一旦我们完成了下述步骤,最终的文件夹结构将是下面这个样子:
├── config│ ├── balancer.json│ ├── proxy.json│ └── router.json├── plugins│ ├── balancer.js│ ├── default.js│ └── router.js└── proxy.js让我们开始吧:
点击新建代码库,在对话框中输入/proxy(或任何你想使用的名称)作为代码库名称,然后点击创建。你将进入到新创建的代码库的代码编辑器。点击上面的“+”按钮,添加一个新文件。输入/config/proxy.json(这是配置文件,我们将用来配置代理)作为文件名,然后点击创建。现在,你会看到,左侧窗格的config文件夹下多了一个proxy.json文件。点击该文件把它打开,并添加如下所示的配置信息,务必点击顶部面板上的磁盘图标来保存文件:{ "listen": 8000, "plugins": [ "plugins/router.js", "plugins/balancer.js", "plugins/default.js" ]}重复步骤 2 和 3,创建另一个文件/config/router.json,它将存储路由信息,配置数据如下:{ "routes": { "/hi/*": "service-hi", "/echo": "service-echo", "/ip/*": "service-tell-ip" }}重复步骤 2 和 3,创建另一个文件/config/balancer.json,它将存储服务到目标的映射信息,内容如下: { "services": { "service-hi" : ["127.0.0.1:8080", "127.0.0.1:8082"], "service-echo" : ["127.0.0.1:8081"], "service-tell-ip" : ["127.0.0.1:8082"] }}现在,我们编写第一个 Pipy 脚本,当我们收到一个没有配置任何目标(端点/url)的请求时,它将被用作默认的后备选项。重复上述步骤,创建文件/plugins/default.js。使用 default 作为文件名只是一个习惯做法,并不是 Pipy 的要求,你可以选择任何你喜欢的名字。该脚本将包含如下代码,返回 ;)))如果你已经按照上面的步骤进行了操作,就可以看到类似于以下截图的东西:
现在,我们点击播放图标按钮(右起第四个)来运行我们的脚本。如果脚本没有任何错误,我们将看到 Pipy 运行我们的代理脚本,输出类似下面这样:
这表明我们的代理服务器正在监听 8000 端口(这是在/config/proxy.json中配置的)。我们用 curl 来运行一个测试:
$ curl -i :
$ curl -i 这个消息,因为我们没有在配置的目标端口上运行服务。
你可以更新/config/balancer.json,加入你已经运行的服务的主机、端口等细节,以匹配你的实际情况,或者我们在 Pipy 中编写一个脚本,监听我们配置的端口,并返回简单的消息。
将以下代码片段保存到你本地计算机上的一个文件中,命名为mock-proxy.js,并记住文件的存储位置。
pipy().listen(8080) .serve是存储该脚本文件的位置):
$ pipy /path/to/mock-proxy.js2022-01-11 18:56:31 [INF] [config]2022-01-11 18:56:31 [INF] [config] Module /mock-proxy.js2022-01-11 18:56:31 [INF] [config] ================2022-01-11 18:56:31 [INF] [config]2022-01-11 18:56:31 [INF] [config] [Listen on :::8080]2022-01-11 18:56:31 [INF] [config] —–|2022-01-11 18:56:31 [INF] [config] |2022-01-11 18:56:31 [INF] [config] serve 端口的服务。让我们在代理服务器上再做一次测试,你会看到,模拟服务返回了正确的响应。
小结我们使用了 Pipy 的许多特性,包括变量声明、导入/导出变量、插件、管道、子管道、过滤器链、handleMessageStart、handleStreamStart和link等 Pipy 过滤器,以及JSON、algo.URLRouter、algo.RoundRobinLoadBalancer和algo.Cache等 Pipy 类。彻底解释所有这些概念超出了本文的范围,如果你希望了解更多信息,请阅读 Pipy 的文档。你可以通过 Pipy 的 Web 端管理 UI 查看这些文档,并按照入门教程一步步操作。
结语来自Flomesh的 Pipy 是一个开源、高性能、轻量级的网络流量处理器,适用于多种场景,包括边缘路由器、负载平衡 &代理(正向/反向)、API 网关、静态 为核心。
这篇文章对 Pipy 做了一个非常简要的介绍和概述。GitHub 上提供了入门教程和文档,你也可以通过 Pipy 管理控制台的 Web UI 查看。社区非常欢迎大家为 Pipy 的发展做贡献,也欢迎大家在自己特定的场景下进行试用,或者提供反馈和意见。
作者简介:
Ali Naqvi 是一位拥有超过 20 年 IT 行业经验的专业人士。他非常热衷于开发以及为开源软件做贡献。他主要关注开发、软件架构、DevOps 等领域。他经常发表演讲,是当地社区/分会的活跃成员,致力于传播 OSS、DevOps 和 Agile 理念和知识。
原文链接:
How to Create a Network Proxy Using Stream Processor Pipy
标签:
相关阅读
-
全球热头条丨广东榕泰回复问询函 转让应收账款加速公司战略转型
12月2日晚,ST榕泰(600589 SH)发布《关于收到上海证券交易所对公司公开挂牌转让部分应收账款事项问询...
2022-12-05 -
全球热文:英名嘴摩根本泽马是史上最被低估的超级射手,一位华丽的球员
4月7日讯欧冠1 4决赛,本泽马帽子戏法,皇马客场3-1领先切尔西。在比赛进行时,英国名嘴皮尔斯-摩根表...
2022-12-05 -
今天起!昆明景点景区、公园无须查验核酸阴性证明
"id= "js_content "style= "visibility:visible; ">据昆明市应对新冠肺炎工作领导小组指挥部文化旅游防控组消息,自202
2022-12-05 -
全球快播:单人单检不超过15元 混检不超过3.5元 云南再次下调新冠病毒核酸检测费用
12月4日云南省医疗保障局网站发布通知我省再次下调新冠病毒核酸检测费用单人单检不超过15元混检不超过3...
2022-12-05
精彩推荐
阅读排行
相关词
- 沃尔沃XC90
- 今日关注:不喝矿泉水和纯净水,身体会怎样?谜底很简朴
- 外滩十八号即将告别撤离?实为久事收回经营!大楼或更名
- “解封”之后,广州又放“大招”
- 简讯:【澜湄印象】跨越山水 | 根
- 世界快看:在世界杯出线20周年纪念日足球迎来了属于自己的决赛
- 环球新消息丨拜仁vs黄潜评分丹朱马破门失良机7.1分阿方索7.9分全场最高
- 世界短讯!12月5日起,单人单检不超过15元 混检不超过3.5元
- 环球报道:单检不超过15元,混检不超过3.5元!云南再次下调核酸检测费用!
- 阿拉巴被皇马签下是因为他在顶级联赛中的丰富经验
- 环球最资讯丨摔角动态将吉米·斯诺卡移出名人堂
- 每日快播:下一轮比赛国足将客场挑战目前3战全胜的沙特阿拉伯队
- 今日聚焦!牛奶、虾皮、骨头汤、芝麻酱,哪种才是“补钙高手”?一文了解清
- 全球焦点!红霉素软膏能淡化老年斑吗?答案很简单,建议了解下
- 速讯:用脚养生,全身都爽!正确泡脚,别犯4个错
- 环球观焦点:怎么清除肚脐眼里的脏东西?建议参考下
- 【全球时快讯】数读丨中阿务实合作成果
- 【世界独家】航天新征程 | 航天员的回家之路:精心设计 科技含量高
- 国足主帅李铁在自己的社交平台上发文感慨国足这20年来的经历
- 摔角动态劳伦奈提斯当上塞纳和布莱恩的岳父
- 讯息:本轮欧会杯对于罗马来说是一场轰动性的失利
- 【天天快播报】昆明部分片区最新核酸点位信息汇总
- 天天观焦点:欧协杯C组第3比赛日展开争夺 罗马客场1比6不敌博德闪耀
- 当前热点-【勠力同心 共同抗疫】疫情不减温情,社会各界用暖心慰问助力款庄抗疫
- 焦点资讯:摔角动态德·里奥与619愿意回归?
- 富民县疫情防控接收社会捐赠及使用情况公示
- 乳胶枕含有毒物质,会引发癌症,可信吗?一文了解清楚
- 环球视讯!警告:6物要管住嘴,否则尿酸很难降,病友多看看
- 天天速读:“肾透支”的5个信号,你有吗?若占3条以上,提醒你或该节制了
- 全球快资讯:如何缓解大腿抽筋疼痛?不妨借鉴下
- 77岁的徐根宝从头到尾看完整场比赛
- 快消息!罗马主帅穆里尼奥接受采访 我会给出我在内部已经做出的正常解释
- 全球热消息:尼昂恩比德是奥尼尔之后的第一中锋对他来说胜利是最重要的
- 环球微速讯:@昆明人,关于奥密克戎,你想知道的都在这里!
- 天天热头条丨五体投地皇马官推P图海绵宝宝膜拜本泽马
- 当前看点!摔角动态迪安·安布罗斯谈论与蕾妮·杨恋情
- 电饭煲内胆有毒,是肝癌的“催化剂”,可信吗?一文了解清楚
- 今日视点:劝告:预防癌症,这4种肉,请嘴下留情
- 全球时讯:辅助稳定血压的食物有哪些呢?建议收藏试试
- 每日热文:水果专列来了!
- 牛食欲不佳怎么办?牛食欲不好怎么回事?这三点要注意
- 【全球聚看点】航天新征程 |【海报】英雄归来
- 今日最新!10多万做品牌全屋定制,值吗?看完这些对比,答案就清楚了
- 征途
- 这些阿拉伯国家钱币上的“中国建造”
- 环球看点!贵阳一名13岁女孩跳楼怕砸到人 报警请求疏散人群
- 全球热点评!医生直呼:这6物,请嘴下留情,赶紧告知家人
- 环球要闻:综述:“大熊猫情缘”成就中比生物多样性合作佳话
- 欧会杯罗马惨败赛后罗马球员向前往挪威观看比赛的罗马球迷致歉
- 当前热讯:男足国足从被绝平到读秒绝杀从绝境中走出的他们终于完成了止跌反弹
- 环球今热点:鹈鹕官推官推的简介应该写什么?墨菲琼斯是一防
- 摔角动态斯汀缺席下周RAW 凯恩将于下周回归?
- 卢卡库因脚踝伤势 预计缺席至少2到3周
- 世界今日报丨魔鬼半区第一步!英格兰能否赢下塞内加尔进8强?
- 胡锡进:不支持现在就彻底结束核酸
- 当前观察:美《通胀削减法案》引发欧洲不满 德财长称欧美贸易争端有升级态势
- 穆里尼奥执教的罗马最近5个客场遭遇4场败绩
- 今热点:摔角动态道夫暗指与拉娜已经成为现实情侣?
- 男足坐镇中立场地阿联酋沙迦体育场迎战越南队
- 天天短讯!两处用人堪称李铁本场的两大败笔
- 【世界新视野】摔角动态布雷·怀亚特受伤?莱贝克缘何缺席节目?
- 每日播报!【疫情防控】东川区关于12月3日新增7例新冠肺炎核酸初筛阳性人员情况的通告
- 天天看点:常见的三种高血压治疗方法,一文学习下
- 世界短讯!普通人一天应该要增补多少蛋白质?一文说清晰
- 今日最新!了解一下简易的减肥早餐
- 世界今头条!羊肉能够给身体带来哪些好处?一文了解清晰
- 新娘冒着雨,翻山越岭去结婚,新郎的举动令人心寒:这人嫁不得
- 【当前独家】广州出现“假自费核酸检测点”?已有不少人在这个点做过核酸
- 世界聚焦:摔角动态大布在今日RAW上大开杀戒 雷尔父子遭殃
- 队在3-2击败越南队的比赛里队的问题还是很多
- 李铁的用人一度引发争议比如连续表现不佳的张稀哲重返首发
- 大面积轮换阵容 穆里尼奥表示上场球员表现不及格
- 天天微动态丨摔角动态全新RAW舞台搭建正式曝光 主题曲以及烟花全部上线
- 热资讯!刑法上对遗弃罪的规定
- 羊肉能够给身体带来哪些好处?一文了解清楚
- 天天资讯:上上燕炖即食燕窝的三大优势你知道吗
- 推进科技储粮 全链条节粮减损
- 经济家底大盘点 全国经济普查变化在哪?
- 最新快讯!更高效更智能 各地做好秋粮收购服务
- 当前快报:去哪做核酸?北京三区公布最新社会面核酸采样点位,开放时间
- 天天动态:“频繁放屁”到底在暗示什么?真的是排毒吗?一文了解清楚
- 米饭、馒头和面条,哪种更轻易升血糖?一文了解清晰
- 每日头条!持续优化防控措施 全力保障民生
- 重庆逐步恢复正常生产生活秩序
- 天天微动态丨摔角动态外媒爆料欲撮合大布同毁容院长的大战
- 全球头条:12强赛国足踢罢三场取得了1胜2负的战绩
- 热头条丨绿军记者史蒂文斯不会考虑湖人帅位他和沃格尔关系密切
- 全球热资讯!一棵大白菜浑身都是营养
- 焦点热门:尽管俱乐部经济情况糟糕巴萨仍然加入对姆巴佩的追逐
- 图式切尔西第2次主场连败,10年来首次连续2个主场至少丢3球
- 焦点播报:投石问路:手机摄影记录随拍的乐趣和AI后期的震撼
- 世界快消息!《重返1993》开播火爆,网友纷纷好评,理由非常中肯
- 每日速读!韩国前锋曹圭成粉丝几天内暴涨160万因求婚电话被打爆无奈关机
- 播报:天下长河:结局中,皇帝身边的高官都去哪儿了?唯有一人笑到最后
- 【环球播资讯】摔角动态传奇巨星爆料CM·朋克在离开之后的后台关系
- 摔角动态莎夏真心不好伺候 前几天还在感谢老麦 今天就吐槽了
- 热议:《云南省激励工业企业技术改造若干措施》发布
- 环球通讯!摔角动态外媒爆料寻找下一个隆达·罗西的选秀活动被无限期搁置
- 摔角动态巨石强森正式确认出席本周SmackDown节目
- 世界新资讯:摔角动态UFC毁容院长被指已同展开会谈
- 【新要闻】注意!云南省第三人民医院暂停儿科门急诊
- 视点!这些宪法知识,你都知道吗?
- 环球快报:眉山司机注意:13日起挑战百日零交通违法,最高可获1800元加油卡
- 环球快报:世卫组织:还没到宣布结束的时候
- 重点聚焦!沈阳一男子租房40天卖掉女房东5000多元的电器去旅游,房东回应:他把我拉黑了,已报警准备起诉
- 抓捕现场,一民警被撞飞、一民警被刺6刀…
- 宪法守护你我一生——网络法治微课堂
- 全球今日讯!有效降低甘油三酯的几种措施,建议参考下
- 环球关注:如何预防血糖失控,保护好皮肤?一文参考下
- 结对帮扶助力农民增收——安徽和县凤台村乡村振兴一线见闻
- 世界快看:分享一下刘大爷的3个降糖习惯,一起学习
- 【快播报】高三女生失联近1月现新线索!父亲:疑似在一理发店出现
- 世界快播:各地开展形式多样宪法法律知识宣传活动
- 对于脑血栓这类高发疾病我们应该采取什么措施进行预防呢?学习下
- 观速讯丨在服用维生素B6时,这些事项要注意
- 资讯推荐:英媒:英国脱欧的现实是残酷的
- 【环球速看料】航天新征程 | 神舟十四号载人飞船顺利撤离空间站组合体
- 摔角动态下半年沙特巡演时间 主打阵容正式敲定 两位传奇巨星确认到场
- 天天快资讯丨火箭新赛季首度胜出伍德拿下了31分14个篮板
- 当前聚焦:乌度卡罗威还没有接触式训练还没和篮网队的熟人交流过
- 全球观热点:冬季建筑施工安全提示
- 摔角动态赛斯·罗林斯的推特账号已经删除?
- 全球观热点:在国际足联排名上国足领先越南队20个身位
- 世界快资讯:万科开盘直冲涨停?万科的未来到底该怎么看?
- 【当前独家】龙吟师傅:我们在摆放婚纱照的时候有一些需要注意的地方
- 广西桂林:守护漓江生态底色
- 观天下!费德勒德约科维奇难了!纳达尔:我会一直打下去,直到打不动为止
- 全球实时:“微网格”中的“红管家”
- 世界微资讯!让女人着迷的,往往是这样的“坏”男人
- 热门看点:神舟十四号航天员将返程 “最忙乘组”半年创造多个“首次”
- 每日快报!11岁男孩吃出重度肝硬化,家长3个“好习惯”,是伤害孩子的真凶
- 最新消息:北京:完善义务教育交流轮岗激励机制
- 不带甜味的无糖茶 成了年轻人“新宠”?
- 环球讯息:做好准备 欢迎回家!神十四乘组今日将返回东风着陆场
- 即时看!13岁男孩课堂上夺笔吵闹,被班主任连扇30多个耳光
- 这些高铁开工建设,经过你的家乡吗?
- 短讯!多地出台住房租赁相关政策
——规范租房市场 保障租户权益 - 环球观察:深挖潜力催热露营经济
- 每日短讯:北京:做好方舱医院治愈患者出院服务保障,做到“应出尽出”
- 天天微头条丨2022年世界杯亚洲区12强赛上演了B组的一场焦点赛事
- 篮网首战失利布朗掉出轮换阵容令人意外
- 百事通!巴萨虽然控球多但很难创造机会
- 年底前实现快递隐私面单基本覆盖
- 环球头条:摔角动态约翰·塞纳谈交战神秘人雷尔 打谁都行 我来者不拒
- 天天微速讯:摔角动态女神节快乐 你一定看不出这些女子选手的真实年龄
- 浙江女子中毒送急诊!竟是因为这个“常见土药方”
- Shams若库里今日训练无碍预计在对阵掘金的G1完成复出
- 每日速递:李铁发声后24小时个人社交媒体已经沦陷被喊下课的声音占据
- 摔角动态NXT北美冠军头衔即将曝光 EC3迎来NXT电视首秀
- 全球短讯!那不勒斯近3次联赛对阵罗马均取胜
- 关注:男足在重压之下给球迷贡献了一场惊心动魄的惨胜