Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vicanso/pike
HTTP cache server, such as varnish
https://github.com/vicanso/pike
br cache-server caching caching-proxy elton http-cache varnish
Last synced: 3 days ago
JSON representation
HTTP cache server, such as varnish
- Host: GitHub
- URL: https://github.com/vicanso/pike
- Owner: vicanso
- License: mit
- Created: 2017-12-28T12:42:13.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T23:03:23.000Z (almost 2 years ago)
- Last Synced: 2024-12-09T07:27:13.667Z (13 days ago)
- Topics: br, cache-server, caching, caching-proxy, elton, http-cache, varnish
- Language: JavaScript
- Homepage: https://treexie.gitbook.io/pike/
- Size: 17.6 MB
- Stars: 172
- Watchers: 12
- Forks: 26
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pike
[![Build Status](https://github.com/vicanso/pike/workflows/Test/badge.svg)](https://github.com/vicanso/pike/actions)
与varnish类似的HTTP缓存服务器,主要的特性如下:
- 提供WEB的管理配置界面,简单易上手
- 支持br与gzip两种压缩方式,根据客户端自动选择。对于可缓存与不可缓存请求使用不同的压缩配置,更佳的时间与空间的平衡
- 仅基于`Cache-Control`生成缓存有效期,接口缓存完全由接口开发者决定,准确而高效(开发比运维更清楚接口是否可缓存,可缓存时长)
- 配置支持文件与etcd两种形式存储,无中断的配置实时更新
- 支持H2C的转发,提升与后端服务的调用性能(如果是内网转发,不需要启用)
- 与upstream的调用支持`gzip`,`brotli`,`lz4`,`snappy`以及`zstd`压缩,可根据与upstream的网络线路选择合适的压缩方式
- 支持upstream检测失败时回调告警,可及时获取异常upstream信息
- 支持自定义日志,可配置按日期与大小分割日志并压缩
- LUR与持久化存储(可选)配合使用,可根据内存使用选择更小的LRU缓存并增加持久化存储的方式
- 持久化存储支持以下形式:badger(文件)、redis以及mongodb
## 启动方式
启动参数主要如下:
- `config` 配置保存地址,可以指定为etcd或者本地文件,如:`etcd://user:[email protected]:2379/pike`,本地文件:`/opt/pike/config.yml`
- `admin` 配置管理后台的访问地址,如:`--admin=:9013`
- `log` 日志文件目录,支持单文件与lumberjack形式,如`/var/pike.log`或`lumberjack:///tmp/pike.log?maxSize=100&maxAge=1&compress=true`,lumberjack会根据文件内容大小与时间将文件分割### 使用文件保存配置
```bash
# linux etcd,管理后台使用9013端口访问
./pike --config=etcd://127.0.0.1:2379/pike --admin=:9013
# linux file,配置文件保存在/opt/pike.yml,管理后台使用9013端口访问
./pike --config=/opt/pike.yml --admin=:9013# docker
docker run -it --rm \
-p 9013:9013 \
vicanso/pike:4.0.0-alpha --config=etcd://172.16.183.177:2379/pike --admin=:9013
```## TODO
- 缓存查询(如果缓存量较大,有可能导致查询性能较差,暂时未支持)