Apache をリバース プロキシとして使用する方法 - ステップバイステップ ガイド
公開: 2023-07-23このガイドでは、「Apache をリバース プロキシとして使用する方法」に対する答えが見つかります。 リバースプロキシサーバーは、クライアントと Web サーバーやアプリケーション サーバーなどのバックエンド サーバーの間の仲介者として機能する強力なツールです。 クライアントとインターネットの間に配置される従来のフォワード プロキシとは異なり、リバース プロキシはクライアントと 1 つ以上のサーバーの間に配置されます。
クライアントがリクエストを行うと、リバース プロキシ サーバーはクライアントに代わってそのリクエストを適切なバックエンド サーバーに転送します。 次に、バックエンド サーバーから応答を受け取り、それをクライアントに送り返します。 このプロセスにより、バックエンド サーバーの ID と内部構造がクライアントから効果的に隠蔽されます。
リバース プロキシには、バックエンド サーバーをインターネットへの直接的な露出から保護することによるセキュリティの強化、クライアントのリクエストを複数のサーバーに分散する負荷分散、キャッシュされたコンテンツをクライアントに提供することによってパフォーマンスを向上させるキャッシュなど、いくつかの利点があります。
目次
フォワード プロキシとリバース プロキシの区別
- プロキシの方向:
- フォワードプロキシ: インターネット上のリソースにアクセスするクライアント要求を処理します。 クライアントとインターネットの間に位置し、クライアントのリクエストを外部サーバーに転送します。
- リバース プロキシ:組織のネットワーク内のリソースにアクセスするクライアント要求を管理します。 クライアントとバックエンド サーバーの間に位置し、クライアントの要求を適切なバックエンド サーバーに転送します。
- クライアントの視点:
- フォワードプロキシ: 通常、クライアントはフォワード プロキシの存在に気づきません。 クライアントのリクエストはプロキシ サーバーに送信され、宛先サーバーはそのリクエストをクライアントから直接送信されたかのように受信します。
- リバースプロキシ: クライアントは、バックエンド サーバーではなく、リバース プロキシにリクエストを直接送信します。 次に、リバース プロキシは、クライアントに代わってリクエストをバックエンド サーバーに転送します。
- 使用事例:
- フォワード プロキシ:コンテンツ フィルタリング、アクセス制御、およびクライアントの IP アドレスを隠すことによるクライアント要求の匿名化によく使用されます。
- リバース プロキシ:主に負荷分散、SSL 終了、キャッシュ、およびバックエンド サービスへの安全なゲートウェイの提供に使用されます。
- サーバーの観点:
- フォワード プロキシ: 宛先サーバーは、元のクライアントではなくフォワード プロキシから送信されたリクエストを認識します。 実際のクライアントがリクエストを行っていることは認識されません。
- リバース プロキシ:バックエンド サーバーは、リクエストを行っているクライアントとしてリバース プロキシを認識します。 彼らは、元のリクエストを行っている実際のクライアントを知りません。
- セキュリティへの影響:
- フォワード プロキシ:クライアントの IP アドレスをマスクすることでクライアントのプライバシーを強化します。 また、悪意のあるコンテンツがクライアントに到達する前にフィルタリングすることで、追加のセキュリティ層を提供することもできます。
- リバース プロキシ:バックエンド サーバーのシールドとして機能し、内部構造を外部クライアントから隠します。 これは、インターネットへの直接的な暴露や潜在的な攻撃から保護するのに役立ちます。
- 導入場所:
- フォワード プロキシ:アウトバウンド インターネット アクセスを制御するために、クライアントのネットワーク内またはクライアントのデバイスに導入されます。
- リバース プロキシ:インターネットとバックエンド サーバーの間の組織のネットワーク エッジに導入され、受信クライアント要求を管理します。
リバース プロキシのさまざまな使用例を調べる
リバース プロキシは、Web アプリケーションとサービスのパフォーマンス、セキュリティ、スケーラビリティを強化する幅広いユースケースを提供します。
リバース プロキシの主な使用例には次のようなものがあります。
- 負荷分散:リバース プロキシは、受信したクライアント要求を複数のバックエンド サーバーに分散できます。 これにより、負荷が分散され、サーバーの過負荷が防止され、リソースの使用率が向上します。 負荷分散により、アプリケーションの全体的なパフォーマンスと応答性が向上します。
- SSL ターミネーション: リバース プロキシは、バックエンド サーバーに代わって SSL/TLS 暗号化と復号化を処理できます。 これにより、リソースを大量に消費する SSL 処理がバックエンド サーバーからオフロードされ、ワークロードが軽減され、証明書管理が簡素化されます。
- キャッシュ:リバース プロキシは、頻繁に要求されるリソースをキャッシュ メモリに保存できます。 クライアントが同じリソースを要求すると、リバース プロキシはキャッシュされたコンテンツを直接提供するため、サーバーの負荷が軽減され、応答時間が短縮されます。
- Web アクセラレーション:リバース プロキシは、静的コンテンツをキャッシュし、データを圧縮することにより、クライアントの Web ページの読み込みを高速化し、その結果、よりスムーズなユーザー エクスペリエンスを実現します。
- セキュリティと DDoS 保護:リバース プロキシは、インターネットとバックエンド サーバー間の保護障壁として機能します。 悪意のあるトラフィックをフィルタリングしてブロックし、分散型サービス拒否 (DDoS) 攻撃から保護し、バックエンド サーバーの実際の IP アドレスを隠して直接攻撃を防ぐことができます。
- Web アプリケーション ファイアウォール (WAF) : リバース プロキシは WAF として機能し、SQL インジェクション、クロスサイト スクリプティング (XSS)、その他の悪意のあるアクティビティなどの潜在的な脅威がないか受信トラフィックを検査します。 これらは、Web アプリケーションを一般的な脆弱性から保護するのに役立ちます。
- 単一のエントリ ポイント:リバース プロキシは、外部クライアントが複数のバックエンド サーバーにアクセスするための単一のエントリ ポイントを提供します。 これにより、ネットワーク アーキテクチャが簡素化され、サービスの管理と拡張が容易になります。
- プロトコル変換:リバース プロキシは、リクエストをあるプロトコルから別のプロトコルに変換できます。 たとえば、HTTP リクエストを WebSocket またはその他のアプリケーション固有のプロトコルに変換して、クライアントとサーバー間の通信を容易にすることができます。
- コンテンツの圧縮と最適化:リバース プロキシは、送信コンテンツをクライアントに送信する前に圧縮できるため、データ転送サイズが削減され、ページの読み込み時間が短縮されます。
前提条件 - Apache をリバース プロキシとして構成する
Bitwise SSH クライアントをインストールする
- ブラウザでBitwise SSH Clientを検索します。 リンク https://www.bitvise.com/ssh-client-download をクリックして、インストールを開始します。
2. セットアップのインストール後、コンピュータから .exe ファイルを開き、Bitvise SSH クライアントのインストールを完了します。
bitwise を使用してサーバー SSH にログインするにはどうすればよいですか?
- インストールが完了すると、以下のウィンドウが表示されます。 ホスト、ポート、ユーザー名を入力し、[初期方法] ドロップダウンからパスワードを選択して、[ログイン] をクリックします。 パスワードを入力するポップアップが表示されます。 SSH パスワードを入力します。
2. ログインしたら、 [新しいターミナル コンソール]をクリックすると、ターミナルがすぐに表示されます。
ステップ 1 - Apache をインストールする
サーバーに接続する
次に、サーバーへの接続を確立し、APT リポジトリを使用してローカル パッケージ インデックスを更新するには、ターミナルで次のコマンドを入力し、Enter キーを押します。
適切なアップデート
アップデートが完了するまでしばらく時間がかかりますので、完了するまでお待ちください。
Ubuntu に Apache をインストールするにはどうすればよいですか?
- UbuntuにApacheをインストールする
ここで、Ubuntu から Apache をインストールするには、以下のコマンドを入力して Enter キーを押します。
apt install -y apache2
2.Apache バージョンの確認
インストール後、次を使用して Apache バージョンを確認するオプションがあります。
apache2 -version
3. Apache ステータスの確認
以下のコマンドを使用して、Apache2 のステータスを確認するオプションもあります。 これは、サーバーが実行されているかどうか、および注意が必要な問題があるかどうかを迅速に判断するのに役立ちます。
systemctl status apache2
ご覧のとおり、画面に表示される (END) ステータスは、Apache2 のインストールが成功したことを明確に示しています。 この結果は、インストール プロセスがエラーや問題なく完了したことを確認します。
4.Apacheを有効にする
Ubuntu で Apache2 を有効にするには、次のコマンドを使用します。
systemctl enabled apache2
5.Apacheを起動する
Ubuntu で Apache2 を再起動する場合は、ターミナルで次のコマンドを使用します。
systemctl start apache2
Almalinux で Apache をインストールするにはどうすればよいですか?
- 利用可能なアップデートを確認する
Almalinux に Apache2 をインストールするには、「 dnf check-update」コマンドを実行して、利用可能なアップデートがあるかどうかを確認します。
dnf check-update
更新が見つかった場合は、 「dnf update」を使用して Linode の更新に進みます。 さらに、プロセス中にカーネル コンポーネントが更新された場合は、忘れずに「reboot」で Linode を再起動して変更を適用してください。
- Apacheをインストールする
次に、必要な Apache パッケージのインストールに進みます。
dnf install httpd httpd-tools
- Apacheを起動する
Apache をインストールしても、自動的に起動しません。 これを開始して有効にするには、 systemctlユーティリティを利用します。
systemctl start httpd
- Apacheを有効にする
システムが再起動するたびに Apache が自動的に再起動されるようにするには、これを有効にします。
systemctl enable httpd
- Apacheのステータスを確認する
「systemctl status」コマンドを使用して、Apacheのステータスを確認します。 アクティブで実行中であると表示されるはずです。
systemctl status httpd
ステップ 2 - リバース プロキシの Apache モジュールを有効にする
Ubuntuで有効にするにはどうすればよいですか?
Apache Web サーバーでリバース プロキシを効果的に利用するには、リバース プロキシ サーバーに必要な追加機能をサポートするために重要な特定の Apache モジュールを有効にする必要があります。
- 必要なモジュールを特定する
mod_proxy : Apache のプライマリ プロキシ モジュールとして機能する mod_proxy は、接続とリダイレクトを効率的に処理します。 これにより、Apache が基盤となるバックエンド サーバーへのゲートウェイとして機能できるようになり、すべてのリバース プロキシ設定に不可欠なモジュールになります。
mod_proxy_http : このモジュールは mod_proxy に依存しており、プロキシ サーバー環境でHTTPおよびHTTPSリクエストをサポートするために不可欠です。 これにより、Apache はHTTP/HTTPS プロトコルを使用した Web アプリケーションのプロキシ処理を適切に処理できるようになります。
mod_ssl:必須の機能を提供する mod_ssl は、Apache HTTP サーバーにSSL v3およびTLS v1.xプロトコルのサポートを提供します。 このモジュールは、安全な暗号化された接続を確立し、データの整合性を確保し、Web サーバーのセキュリティを強化するために重要です。
2.モジュールを有効にする
ここで、 a2enmodコマンドを使用してこれらのモジュールをアクティブ化します。
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
- Apache2サーバーを再起動します
新しい Apache モジュールを有効にした後は、 apache2サーバーを再起動するという重要な手順を見逃さないようにすることが重要です。 この手順により、変更が確実に有効になり、新しくアクティブ化されたモジュールを Apache サーバーの構成に完全に統合できるようになります。
sudo systemctl restart apache2
- モジュールの検証
次のコマンドを使用して、これらのモジュールのアクティブ ステータスを確認できます。
sudo apachectl -M
ステップ 3 - Apache リバース プロキシの構成
ここで、インターネットからのリクエストを受け入れ、それらを選択したリソースに効果的に転送するようにApacheリバース プロキシを構成します。
- デフォルトのApacheを無効にする
まず、デフォルトの Apache 仮想ホスト構成ファイルを無効にします。 これは、次のコマンドを使用して実現できます。
a2dissite 000-default.conf
- 新しい設定ファイルを作成する
新しい仮想ホスト構成ファイルの作成は、同じサーバー上で異なる Web アプリケーションまたは Web サイトを提供するように Apache をカスタマイズするための基本的な手順です。 あ 仮想ホストを使用すると、 Apache がそれぞれ独自の構成と設定を持つ複数のドメインまたはサブドメインを管理できるようになります。
新しい仮想ホスト構成ファイルを作成するには、次の一般的な手順に従います。
名前の選択: 仮想ホスト ファイルのわかりやすい名前を選択します。通常は拡張子「.conf」で終わります。 たとえば、「example.com.conf」や「cyberpanel.conf」などです。
Apache の構成ディレクトリに移動します。ほとんどの Linux ディストリビューションでは、Apache の構成ファイルは「/etc/apache2/sites-available/」ディレクトリに保存されています。 例えば:
cd /etc/apache2/sites-available/
仮想ホスト ファイルの作成: nano や vi などのテキスト エディタを使用して、新しい構成ファイルを作成します。 例えば:
sudo nano example.com.conf
上記のコマンドを入力すると、以下のファイルが表示されます。
仮想ホストを構成する: ファイル内で<VirtualHost>ディレクティブを使用して、特定の仮想ホストへの要求を受け入れる IP アドレスとポートを定義します。 デフォルトのHTTPポート(ポート 80)ですべての IP アドレスを許可する基本的な例では、次を使用します。
<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com ServerAdmin [email protected] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ProxyRequests Off </VirtualHost>
構成プロセスは、 <VirtualHost>コマンドで仮想ホストを定義し、Apache 用に受け入れられる IP アドレスとポート番号を指定することで開始されます。 この例では、ワイルドカード文字 * が使用され、すべての IP アドレスの受け入れが許可され、ポート番号はデフォルトの HTTP ポートを表す80に設定されます。 これに続いて、構成にはさらに次の項目が含まれます。
- ServerName : このディレクティブは、サーバーに関連付けられたドメイン名を指定します。
- ServerAlias: ServerAlias を使用すると、サーバーが受け入れる追加の名前を定義できます。
- ServerAdmin : ServerAdmin ディレクティブは、サーバーがクライアントに返すエラー メッセージに含める連絡先電子メール アドレスを設定します。
- ErrorLog : ErrorLog は、Apache が発生したエラーを保存するファイルの名前を設定します。
- CustomLog: CustomLog は、Apache がクライアント要求をサーバーに記録するファイルの名前を設定します。
- ProxyPass: ProxyPass は、リモート サーバーをローカル サーバーのスペースにマッピングし、トラフィック リダイレクトのターゲット アドレスを定義します。 これにより、Apache がリバース プロキシとして機能し、リクエストをバックエンド サーバーに転送し、アプリケーションのパフォーマンスと負荷分散を強化できるようになります。
- ProxyPassReverse: ProxyPassReverse は、バックエンド サーバーの元の場所、コンテンツの場所、および URI HTTP 応答ヘッダーをプロキシ サーバーの情報で書き換えるため、プロキシ サーバーにとって不可欠です。 これにより、リバース プロキシが応答を正しく処理し、バックエンド サーバーが直接インターネット アクセスにさらされることがなくなります。
- ProxyRequests: ProxyRequests は、Apache HTTP サーバーがフォワード プロキシとして使用されるのを防ぎ、セキュリティを強化します。 通常、ProxyPass を使用する場合は、サーバーがオープン プロキシとして誤用されることを回避し、潜在的なセキュリティ リスクから保護するために、「オフ」に設定する必要があります。
保存して終了: 変更を保存してテキスト エディタを終了します。
仮想ホストを有効にする: a2ensite コマンドを使用して、新しい仮想ホスト構成を有効にします。
sudo a2ensite example.com.conf
Apache のリロード:変更を適用するには、Apache をリロードして新しい仮想ホストをアクティブにします。
sudo systemctl reload apache2
これらの手順が完了すると、新しい仮想ホストがアクティブになり、指定された Web サイトまたはアプリケーションを提供できるようになります。 変更は、仮想ホストが有効になり、Apache がリロードされた後にのみ有効になることに注意することが重要です。 さらに、Web サイトのファイルを「DocumentRoot」ディレクティブで指定されたディレクトリに配置すると、Apache がこの特定の仮想ホストに対してコンテンツを正しく提供できるようになります。
構成の検証:リバース プロキシ構成が期待どおりに機能していることを確認します。 Web ブラウザで指定されたドメイン名(例: 「reverse-proxy.example.com」)にアクセスすると、Apache はリクエストをバックエンド サーバーに適切に転送します。
SSL 証明書の処理、負荷分散、 WebSocket プロキシなど、特定の使用例に基づいて追加の設定を構成する必要がある場合があることに注意してください。 サーバーのパフォーマンスとセキュリティを定期的に監視して、スムーズな運用を確保します。
Cyberpanel で Apache をリバース プロキシとして使用する方法
Cyberpanel では、バックエンドでのApacheと OpenLiteSpeed の統合により、OpenLiteSpeed の速度の利点と Apache の豊富な機能が組み合わされて、両方の長所が提供されます。 特に、Apache をリバース プロキシとして利用しても、ls キャッシュのパフォーマンスは損なわれません。 OpenLiteSpeed を単独で使用した場合と同じレベルのパフォーマンスを維持できます。 この構成では、OpenLiteSpeed は引き続きフロントエンド トラフィックを Apache に渡し、バックエンドからのリクエストを処理します。 さらに、この統合は、 AlmaLinuxとUbuntuオペレーティング システムの両方でサポートされています。 この記事に従うことで、ユーザーはリバース プロキシ設定で Apache と OpenLiteSpeed を組み合わせることで得られる利点を最大限に活用できます。
Cyberpanel ダッシュボードにログインします。
「Web サイトに移動」オプションをクリックして「Web サイトの作成」をクリックします
ドメイン名、電子メール アドレス、PHP バージョンを入力し、リバース プロキシとして Apache を選択します。 詳細を入力したら、 「Web サイトの作成」をクリックします。 しばらく時間がかかる場合がありますが、その後作成されます
この Web サイトは、Apache でリバース プロキシ モードとして動作します。 フロントエンドでは Openlitespeed が動作し、バックエンドでは Apache が動作します。 したがって、Cpanel または他のコントロール パネルを使用しているかどうかに関係なく、すべての htaccess ルールは以前と同様に機能します。
サイトが正常に作成されたことがわかります。
このサイトでは、Web サイト マネージャーでこのサイトの Apache 構成を管理できます。 「管理」をクリックします
ここに来たら、 「Apache Manager」をクリックします
さらに、純粋な Openlitespeed に切り替えることもできます。 したがって、この Web サイトのバックエンドで Apache を使用しないことに決めたいとします。 純粋な Openlitespeed に切り替える場合は、 PHP バージョンを選択し、 「純粋な Openlitespeed に切り替える」をクリックします。 OpenLitespeedを使用している場合は、Apacheを使用するように変換することもできます
これらは Apache 構成です。 何かを編集したい場合は簡単に編集できますが、ここで何か問題が発生するとウェブサイトが機能しなくなるため、何をしているのか必ず確認してください。
Apache 構成では PHP-FPM を使用しているため、これらは使用している PHP-FPM 構成です。
PHP 構成の場合PHPに移動し、PHP 構成の編集をクリックします。 PHP 構成を編集する場合。
Apache を使用している場合は、Php 構成も編集する必要があるため、Apache がインストールされている場合は、この URL が表示されます。
デフォルトでは、Litespeed Php の構成を編集できます。 Apache の設定を編集する場合は、「EDIT APACHE CONFIGURATIONS」をクリックします。
「EDIT APACHE CONFIGURATIONS」をクリックすると、post_max_size、upload_max_filesize、max_execution_time など、Litespeed 設定で使用するあらゆる操作を行うことができます。
構成を編集した後、必ず「変更を保存」をクリックしてください
同様に、高度な編集も使用できます
同様に、Apache 用の PHP 拡張機能をインストールできます。 「PHP」->「拡張機能のインストール」をクリックするだけです
Apache を使用している場合は、 Apache 拡張機能も管理する必要があるため、Apache がインストールされている場合は、この URL が表示されます。
デフォルトでは、Litespeed Php の拡張機能をインストールできます。 Apache の拡張機能をインストールする場合は、 「APACHE 拡張機能の管理」をクリックします。
関連性のあるコンテンツ
また、 「Apache と NGINX のパフォーマンスの点でどちらが勝者ですか?」に関するガイドもご覧ください。