UrlProxy — 高性能HTTPリバースプロキシ

DevOps

概要

UrlProxyはGoで書かれた高性能なHTTPリバースプロキシ/転送サーバーです。APIごとにパスプレフィックスで宛先を振り分けられるマルチマッピング、リクエスト・レスポンスのストリーミング転送(大きなボディや遅延ストリーミングに有利)、Keep-Aliveを使った接続再利用の設定、CORS対応、タイムアウトやリクエストサイズ制限など運用に必要な機能を揃えています。Docker / docker-composeで即稼働させられるため、APIゲートウェイやプロキシレイヤーとして手早く導入できます。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 2
  • ファイル数: 9
  • メインの言語: Go

主な特徴

  • 複数パスプレフィックスのマッピングで複数APIを一つのプロキシで運用可能
  • ストリーミング転送をサポートし、遅延レスポンスや大容量転送に強い
  • Keep-Alive接続の有効/無効と接続再利用の設定を環境変数で制御
  • CORS、タイムアウト、リクエストボディサイズ上限など実運用向けの設定群

技術的なポイント

UrlProxyはGoの標準的なHTTPスタック(net/http)を活用しつつ、プロキシ用途に最適化された設計が特徴です。URLプレフィックスごとに宛先をマッピングする仕組みは、軽量なルーティング層で実現されており、複数の外部API(例:OpenAI、Anthropic)を同一エンドポイント下で扱えます。ストリーミング転送は、リクエストとレスポンスのボディをチャンク単位でそのまま流すことでレイテンシを抑え、メモリフットプリントを低く保ちます。接続再利用はHTTP TransportのKeep-Alive設定やアイドル接続数の管理で制御され、短時間に大量リクエストが発生するケースでのソケットコストを削減します。CORSヘッダはミドルウェアで付与され、プリフライト対応も可能。タイムアウトや最大ボディサイズはサーバー・クライアント両側で制御し、不正な長時間接続や大容量攻撃を緩和します。設定は環境変数(例:API_PROXY_CONFIGのJSONマッピング)で行え、Dockerイメージ化されているためクラウド・コンテナ環境へのデプロイが容易です。さらにREADMEにある通り、ProxyFlowのような外部IPローテーションツールと組み合わせることで、リクエスト単位のIP切り替えやレート制限の回避を狙った運用も想定されています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .dockerignore: file
  • .env.example: file
  • .github: dir
  • .gitignore: file
  • .version: file
  • README.md: file
  • main.go: file
  • go.mod: file
  • docker: dir

…他 0 ファイル

まとめ

シンプルかつ実運用を意識したGo製プロキシで、Docker展開やAPIマッピングが容易です。

リポジトリ情報: