#cors #proxy #proxy-server #request #header #https #proxied

app wrap-cors

wrap-cors 是一个代理服务器,可以为代理请求启用 CORS。

3 个版本 (破坏性)

0.3.0 2021年12月17日
0.2.0 2020年6月19日
0.1.0 2020年5月13日

9 in #cors

MIT 许可证

28KB
629

wrap-cors

ci GitHub Crates.io

wrap-cors 是一个代理服务器,可以为代理请求启用 CORS。

请求路径将经过验证,然后用作代理的 URL。仅允许 http 和 https 协议,并必须指定。

预检请求将允许任何方法和头。所有代理请求都将允许任何来源,并允许将请求中的所有头在响应中公开。

安装

二进制文件

预编译二进制文件的存档 可用于 Linux、macOS 和 Windows。

Windows 二进制文件需要安装 Microsoft Visual C++ 2015 运行时

Cargo

最低支持的 Rust 版本是 1.56.0,wrap-cors 不会与低于此版本的版本一起工作。

$ cargo install warp-cors

Docker

Docker 镜像发布在 bassetts/warp-cors 仓库中。

$ docker run -dp 3030:3030 bassetts/warp-cors

使用方法

默认情况下,wrap-cors 将监听端口 3030 并将包名 (wrap-cors) 作为代理请求中发送的 Via 头中的别名使用。这些可以通过使用 --port <PORT>--hostname <HOST> 标志分别重写。

如果您在公共可访问的主机上运行 wrap-cors,建议将 --hostname 标志设置为匹配。

示例

$ warp-cors --port 3000 --hostname cors.example.org

示例请求

https://127.0.0.1:3030/ # 404 Not Found
https://127.0.0.1:3030/http://example.org # Proxied HTTP response with CORS headers
https://127.0.0.1:3030/https://example.org # Proxied HTTPS response with CORS headers
https://127.0.0.1:3030/example.org # 404 Not Found (no scheme provided)
https://127.0.0.1:3030/ftp://example.org # 404 Not Found (invalid scheme provided)

日志记录

wrap-cors 使用 pretty_env_logger,因此您可以通过设置 RUST_LOG 环境变量来控制日志级别。这对于开发和运行 wrap-cors 都很有用。

# Output all info level logs, including those from libraries used by warp-cors
$ RUST_LOG=info warp-cors

# Output info level logs for only warp-cors
$ RUST_LOG=warp_cors=info warp-cors

# Filter logging by module, useful for development or debugging
$ RUST_LOG=warp_cors::filters::request=trace warp-cors

依赖项

~20–35MB
~645K SLoC