ウェブサイト検索

Linux 用のベスト 10 オープンソース リバース プロキシ サーバー


リバース プロキシ サーバーは、クライアントとバックエンド/オリジン サーバーの間に導入されるプロキシ サーバーの一種です。たとえば、NGINXHTTP サーバーなどのHTTPサーバーです。 Apache など。またはNodejsPythonJavaRubyで書かれたアプリケーション サーバー。 PHP やその他多くのプログラミング言語。

これは、クライアント要求を受け取り、それを 1 つまたは複数のバックエンド サーバーに渡し、その後サーバーから応答を取得してクライアントに送り返す、ゲートウェイまたは中間サーバーです。これにより、コンテンツがあるかのように見えます。リバース プロキシ サーバー自体から発信されます。

一般に、リバース プロキシ サーバーは、プライベート ネットワーク上のバックエンド サーバーへのアクセスを制御および保護するための「フロントエンド」として使用される内部向けプロキシです。通常、ネットワーク ファイアウォールの内側に展開されます。 。

これは、バックエンド サーバーが匿名性を実現してセキュリティを強化するのに役立ちます。 IT インフラストラクチャでは、リバース プロキシは、アプリケーション ファイアウォール、ロード バランサー、TLS ターミネーター、Web アクセラレータ (静的および動的コンテンツのキャッシュによる) などとしても機能します。

この記事では、Linux システムで使用できるトップ 10 のオープンソース リバース プロキシ サーバーをレビューします。

1. HAProxy – (TCP/HTTP ロードバランサー)

HAProxy (HAProxy高可用性プロキシの略) は、無料のオープンソースで、非常に高速で信頼性が高く、TCP 用の一流のロード バランサーおよびプロキシ ソフトウェアです。高可用性を実現するために構築された HTTP ベースのアプリケーション。

HAProxy は、HTTP リバース プロキシ、TCP プロキシおよびノーマライザー、SSL/TLS ターミネーター/イニシエーター/オフローダー、キャッシング プロキシ、HTTP 圧縮オフローダー、トラフィック レギュレーター、コンテンツ ベースのスイッチ、 FastCGI ゲートウェイなど。これは、DDoS やサービスの悪用に対する保護でもあります。

これは、非常に高速な I/O レイヤーと優先順位ベースのマルチスレッド スケジューラを組み合わせたイベント駆動型のノンブロッキング エンジンを搭載しており、これにより数万の同時接続を簡単に処理できます。

特に、HAProxyPROXY プロトコルを使用してクライアントの接続情報をバックエンド サーバーまたはオリジン サーバーに渡し、アプリケーションがすべての関連情報を取得できるようにします。

HAProxy の基本機能には、プロキシ、SSL サポート、サーバーとその状態の両方の監視、高可用性、ロード バランシング、スティッキー性 (さまざまなイベント間でも訪問者を同じサーバーに維持する)、コンテンツ スイッチング、HTTP 書き換え、リダイレクト、サーバーが含まれます。保護、ロギング、統計など。

2. NGINX – (HTTP およびリバース プロキシ Web サーバー)

NGINX は、無料のオープンソース、高性能、非常に人気のある HTTP サーバーおよびリバース プロキシです。またIMAP/POP3プロキシサーバーとしても機能します。 NGINX は、高いパフォーマンス、安定性、豊富な機能セット、シンプルで柔軟な構成、および低リソース消費 (特に小さいメモリ使用量) でよく知られています。

HAProxy と同様に、NGINX はイベント駆動型のアーキテクチャを採用しているため、HAProxy の PROXY を使用するため、数万の同時接続を問題なく処理できます。 > プロトコル。

NGINX は、ngx_http_proxy_module モジュールを使用したキャッシュによる高速リバース プロキシをサポートします。これにより、FastCGI、uwsgi、SCGI、Memcached などの HTTP 以外のプロトコルを介してリクエストを別のサーバーに渡すことができます。

重要なのは、大規模な分散コンピューティング システムの重要な側面である負荷分散とフォールト トレランスをサポートしていることです。 ngx_http_upstream_module モジュールを使用すると、クライアントからのリクエストを分散するバックエンド サーバーのグループを定義できます。

これにより、アプリケーションの堅牢性、可用性、信頼性が向上し、応答時間とスループットが向上し、スケーラビリティが向上します。さらに、セキュリティに関しては、SSL/TLS 終端やその他の多くのセキュリティ機能をサポートしています。

Nginx Web サーバーに関する役立つ記事:

3. Varnish – (リバース キャッシング プロキシ)

Varnish HTTP Cache ( またはVarnish Cache または単にVarnish) は、無料のオープンソース、高性能、非常に人気のあるキャッシュ リバース プロキシ ソフトウェアであり、Web としてよく知られています。アプリケーション アクセラレータ。サーバー側のキャッシュを使用して HTTP パフォーマンスを向上させるように設計されています。

これは、クライアントと HTTP Web サーバーまたはアプリケーション サーバーの間に展開されます。クライアントが Web サーバーに情報やリソースをリクエストするたびに、Varnish は情報のコピーを保存します。そのため、次回クライアントが同じ情報をリクエストしたとき、Varnish は Web サーバーにリクエストを送信せずに情報を提供し、サーバーへの負荷を軽減します。サーバーを強化し、Web コンテンツの配信を高速化します。

Varnish は、Varnish 構成言語 (VLC) として知られる柔軟な構成言語を使用します。これにより、特にシステム管理者は受信リクエストの処理方法を構成できます。処理、どのコンテンツをどこから提供するか、リクエストやレスポンスをどのように変更するかなど。

ワニスは拡張可能でもあり、ワニス モジュール (VMOD) を使用して拡張でき、ユーザーはカスタム モジュールを作成したり、コミュニティが提供するモジュールを使用したりできます。

Varnish の主な制限は、SSL/TLS がサポートされていないことです。 HTTPS を有効にする唯一の方法は、HAProxyNGINX などのSSL/TLS ターミネーターまたはオフローダーをデプロイすることです。その前に。

4. Træfɪk – (クラウド ネイティブ アプリケーション プロキシ)

Træfɪk (トラフィックと発音) は、複数の負荷分散アルゴリズムをサポートするマイクロサービスを展開するための、無料のオープンソースの最新の高速 HTTP リバース プロキシおよびロード バランサーです。

KubernetesDocker、Etcd、Rest API、Mesos/Marathon、Swarm、Zookeper などのさまざまなプロバイダー (またはサービス検出メカニズムやオーケストレーション ツール) と連携できます。

その魅力的な機能は、構成を自動的かつ動的に管理し、サービスに適した構成を検出できることです。これは、インフラストラクチャをスキャンして関連情報を検索し、どのサービスが外部からのどのリクエストに対応しているかを検出することによって行われます。プロバイダーは、アプリケーションやマイクロサービスがどこにあるかを Træfɪk に伝えます。

Træfɪk のその他の機能は、WebSocket、HTTP/2、GRPC、ホット リロード (再起動せずに構成を継続的に更新)、Let’s Encrypt 証明書を使用した HTTPS (ワイルドカード証明書のサポート) でサポートされており、REST API を公開しています。また、アクセス ログも保持し、メトリクス (Rest、Prometheus、Datadog、Statsd、InfluxDB) を提供します。

また、Træfɪk には、イベントを監視するために使用されるシンプルな HTML ベースの Web ユーザー インターフェイスが付属しています。また、サーキット ブレーカー、再試行リクエスト、レート制限、基本認証もサポートしています。

5. Apache Traffic Server – (リバースおよびフォワード プロキシ サーバー)

以前はYahooが所有していた商用製品でしたが、後にApache Foundationに引き継がれました。Apache Traffic Server は、無料のオープンソースの高速キャッシュ フォワード プロキシおよびリバース プロキシです。サーバ。

トラフィック サーバーはロード バランサーとしても機能し、柔軟なキャッシュ階層に参加できます。 Yahoo では 1 日あたり 400 TB 以上のトラフィックを処理したことが知られています。

これは、コンテンツ リクエストのキープアライブ、フィルタリング、または匿名化のセットを備えており、ユーザーが HTTP ヘッダーの変更、ESI リクエストの処理、新しいキャッシュ アルゴリズムの設計を行うカスタム プラグインを作成できる API を介して拡張可能です。

6. Squid – (HTTP プロキシのキャッシュと転送)

Squid は、無料のオープンソースで、HTTP、HTTPS、FTP などのさまざまなプロトコルをサポートするよく知られたプロキシ サーバーおよび Web キャッシュ デーモンです。送信データに対する受信リクエストをキャッシュするリバース プロキシ (httpd アクセラレータ) モードを備えています。

豊富なトラフィック最適化オプション、アクセス制御、認可、ロギング機能などをサポートしています。

7.ポンド – (リバース プロキシおよびロード バランサー)

Pound は、もう 1 つの無料のオープンソース、軽量のリバース プロキシ、ロード バランサー、および Web サーバーのフロントエンドです。これは、SSL ターミネーターでもあります (クライアントからの HTTPS リクエストを復号化し、プレーン HTTP としてバックエンド サーバーに送信します)。

HTTP/HTTPS サニタイザー (リクエストの正確性を検証し、適切な形式のリクエストのみを受け入れます)、およびフェイルオーバー サーバー。

8. Apache – (HTTP Web サーバー)

世界中で最も人気のある Web サーバーである Apache HTTP サーバー (HTTPD とも呼ばれます) を、リバース プロキシとして機能するように展開して構成することもできます。

Apache は、クライアント リクエストをバックエンド サーバーにルーティングし、セキュリティを強化し、負荷分散し、Web アプリケーションのパフォーマンスを最適化する点で優れています。 Apache は仲介者として機能することで、受信トラフィックを複数のサーバー インスタンスに効率的に分散し、高可用性とシームレスなユーザー エクスペリエンスを保証します。

堅牢でカスタマイズ可能な構成オプションにより、コンテンツ キャッシュやアプリケーション配信など、リバース プロキシのニーズに対応する信頼性の高いソリューションを求める組織にとって、最適な選択肢となります。

9.スキッパー – (HTTP ルーターおよびリバース プロキシ)

Skipper は、Kubernetes Ingress などのユースケースを含む、サービス構成用の無料のオープンソース HTTP ルーターおよびリバース プロキシです。

これは、800,000 ルートを超える、動的に構成された相当数の HTTP ルート定義を管理するように構築されており、複雑な検索条件を備え、フィルターを使用してリクエスト フローを強化する柔軟性を提供します。

そのままで簡単に展開することも、カスタム ルックアップ、フィルター ロジック、構成ソースを組み込んで拡張することもできます。

10 Caddy 2 – 自動 HTTPS を備えた高速サーバー

Caddy 2 は、そのシンプルさと多用途性で知られるオープンソースの Web サーバーおよびリバース プロキシであり、ユーザーフレンドリーなインターフェイスとデフォルトで自動 HTTPS を提供し、初心者と経験豊富なユーザーの両方にとってアクセスしやすい選択肢となっています。

Caddy 2 は、ウェブ ホスティング、HTTP/2、負荷分散、プロキシを簡単に処理できるように設計されており、ウェブサイトのパフォーマンスとセキュリティを強化します。そのオープンソースの性質によりコミュニティへの貢献が奨励され、Web ホスティングとサーバー管理の世界でその使いやすさと最新の機能で人気を集めています。

結論

このガイドで説明した内容は以上です。このリストの各ツールの詳細については、それぞれの Web サイトを確認してください。以下のフィードバック フォームからご意見をお聞かせください。