4个版本
0.2.2 | 2024年4月20日 |
---|---|
0.2.1 | 2024年3月26日 |
0.2.0 |
|
0.1.1 | 2024年3月25日 |
0.1.0 | 2024年3月22日 |
#92 在 HTTP服务器
每月25次下载
55KB
593 行
Aigis
您正在查看Aigis二进制的README。如果您想将Aigis作为Rust库的一部分运行,请使用此链接。
Aigis是一个简单且可配置的内容代理,旨在为想要从外部源嵌入图像和视频内容的同时保护用户隐私的网站。
注意
Aigis是一个兴趣爱好项目,尚未考虑用于生产,并且API是不稳定的。关于它的任何内容,包括功能、功能和性能,都可能随着稳定性的提高而迅速变化。该项目是基于我自己的基础设施和需求设计的,可能不适合您。请务必考虑其他选项,例如imageproxy或ImageWizard!
功能
- 通过查询参数代理端点图像缩放和格式更改。
- 上游请求缓存,遵守
Cache-Control
头。 -
Content-Type
允许列表。 - '嵌入'端点将OpenGraph元标签转换为JSON格式,供嵌入内容的前端应用程序使用。
- 改进了请求错误的格式。
- 支持
--proxy-allowed-domains
的子域名通配符。
安装
Docker
每次发布都会在GHCR上发布官方Docker镜像,这是推荐运行服务器的方式。
假设您已经在本地安装了Docker或其他容器工具,只需运行以下命令(将<tag>
替换为您想使用的版本)。
docker run --name aigis -p 3005:3005 ghcr.io/blooym/aigis:<tag>
Cargo
假设您已经在本地安装了Cargo,您可以简单地运行以下命令来编译二进制文件。
cargo install aigis-bin
配置
Aigis通过命令行标志或环境变量进行配置,并完全支持从.env
文件中获取配置信息。以下是所有支持的配置选项列表。您也可以运行aigis --help
以获取最新的包括默认值。
名称 | 描述 | 标志 | 环境 |
---|---|---|---|
地址 | 本地服务器应托管上的套接字地址 | --address |
AIGIS_ADDRESS |
请求超时 | 在强制终止之前,传入请求的最大生命周期 | --request-timeout |
AIGIS_REQUEST_TIMEOUT |
允许上游无效证书 | 在发起上游请求时允许自签名/无效/伪造的TLS证书(危险) | --upstream-allow-invalid-certs |
AIGIS_UPSTREAM_ALLOW_INVALID_CERTS |
上游请求超时 | 在强制终止之前,上游请求的最大生命周期(秒) | --upstream-request-timeout |
AIGIS_UPSTEAM_REQUEST_TIMEOUT |
上游最大重定向 | 发起上游请求时可以跟随的最大重定向次数 | --upstream-max-redirects |
AIGIS_UPSTREAM_MAX_REDIRECTS |
使用接收到的缓存头 | 是否发送从上游服务器请求时接收到的Cache-Control 头值,如果可用的话 |
--use-received-cache-headers |
AIGIS_UPSTREAM_USE_RECEIVED_CACHE_HEADERS |
传递头到上游 | 应从原始请求传递到上游的头名称列表,如果已设置。 | --upstream-pass-headers |
AIGIS_UPSTREAM_PASS_HEADERS |
代理最大内容大小 | 此服务器可以代理的最大Content-Length | --proxy-max-size |
AIGIS_PROXY_MAX_SIZE |
代理允许的MIME类型 | 允许此服务器代理的MIME "本质"字符串列表。支持类型通配符(例如,'image/*') | --proxy-allowed-mimetypes |
AIGIS_PROXY_ALLOWED_MIMETYPES |
代理允许的域 | 允许代理内容的域列表。为空时允许所有域。不支持通配符 | --proxy-allowed-domains |
AIGIS_PROXY_ALLOWED_DOMAINS |
代理最大缩放分辨率 | 在代理支持运行时修改的内容时,允许请求的最大分辨率(包括) | proxy-max-upscale-res |
AIGIS_PROXY_MAX_UPSCALE_RES |
许可
Aigis同时受MIT许可证和Apache 2.0许可证的双重许可,您可选择其一。
依赖
~22–38MB
~626K SLoC