
flomesh/pipyPipy是一款轻量级、高性能的可编程代理,专为云、边缘计算和物联网(IoT)环境设计。它提供灵活的编程接口,允许用户根据特定需求定制代理逻辑,实现数据转发、过滤、转换和处理等功能。作为通用代理解决方案,Pipy能够适应从云端大规模部署到边缘设备资源受限环境的各种场景,为网络流量管理提供高度定制化能力。
拉取并运行Pipy基础镜像:
bashdocker run -d --name pipy-proxy -p 8080:8080 flomesh/pipy
-d:后台运行容器--name pipy-proxy:指定容器名称-p 8080:8080:映射容器8080端口到主机(默认代理端口)flomesh/pipy:Pipy官方Docker镜像通过挂载脚本文件定义代理逻辑:
proxy.js(示例:HTTP请求转发到example.com):javascriptpipy() .listen(8080) .serveHTTP(() => $=>$.pipe( new HTTPProxy('example.com:80') ) )
bashdocker run -d --name pipy-custom -p 8080:8080 -v $(pwd)/proxy.js:/pipy/proxy.js flomesh/pipy /pipy/proxy.js
-v $(pwd)/proxy.js:/pipy/proxy.js:挂载本地脚本到容器/pipy/proxy.js:指定启动执行的脚本路径创建docker-compose.yml:
yamlversion: '3' services: pipy: image: flomesh/pipy container_name: pipy-proxy ports: - "8080:8080" # HTTP代理端口 - "8443:8443" # HTTPS代理端口(如需) volumes: - ./proxy.js:/pipy/proxy.js # 挂载自定义脚本 - ./certs:/pipy/certs # 挂载TLS证书(如需) restart: unless-stopped command: /pipy/proxy.js # 执行自定义脚本
启动服务:
bashdocker-compose up -d
PIPY_LOG_LEVEL:日志级别(debug/info/warn/error,默认info)PIPY_WORKERS:工作进程数(默认按CPU核心数自动调整)PIPY_CONFIG_PATH:默认配置脚本路径(默认/pipy/default.js)listen(port):指定监听端口serveHTTP(handler):配置HTTP代理处理逻辑connectTCP(handler):配置TCP代理处理逻辑HTTPProxy(target):创建HTTP代理目标TLSTermination(cert, key):配置TLS终止(HTTPS)实现基于路径的HTTP路由和响应头修改:
javascriptpipy({ _routes: { '/api/users': '[***] '/api/orders': '[***] '/': '[***] } }) .listen(8080) .serveHTTP( $=>$.matchPath(_ => _routes[_.path] || '[***] .pipe( new HTTPProxy(r => _routes[r]) ) .replaceMessage( msg => msg.setHeader('X-Proxy', 'Pipy') ) )
功能说明:
X-Proxy: Pipy头manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务