このトピックでは、Apsara File Storage NAS (NAS) のプロキシとしてNGINXを使用する方法について説明します。
背景情報
NGINXは、軽量で高性能なwebサーバーです。 さまざまな機能を提供し、リバースプロキシとして使用できます。 NGINX の最も一般的なアプリケーションモードの 1 つは、リバースプロキシとして機能することです。 プロキシサーバは、インターネットを介してクライアントから接続要求を受信する。 次いで、プロキシ・サーバは、これらの要求をプライベート・ネットワーク内に存在するサーバに転送し、サーバからこれらのクライアントに応答を返す。 このようにプロキシサーバーがサーバーに代わって動作することを、リバースプロキシと呼びます。
プライベートネットワーク内に存在するアプリケーションサーバは、プライベートネットワーク外のクライアントからアクセスできない。 このような場合、アプリケーションサーバとクライアントとの間の仲介として機能するリバースプロキシが必要とされます。 リバースプロキシは、アプリケーションサーバと同じプライベートネットワーク内に存在するが、プライベートネットワーク外のクライアントにアクセス可能です。 リバースプロキシとアプリケーションサーバーは同じ物理サーバーを共有できますが、異なるポートを使用します。
次の例では、1つのNGINXサーバーをリバースプロキシとして使用し、4つのNGINXサーバーをプロキシサーバーとして使用し、NASをバックエンドストレージとして使用します。 NASは、プロキシサーバーのキャッシュファイル、ミラーリングベースのback-to-originファイル、またはユーザーがアップロードした静的データファイルを保存します。 NASでは、異なるプロキシサーバーから同じファイルシステムに共有アクセスできます。 これにより、プロキシサーバー間でデータを同期し、データの一貫性を確保できます。 また、サーバーが発信元からファイルを繰り返し取得することを防ぎ、帯域幅の効率的な使用を保証します。 次の図は、ネットワークトポロジの例を示しています。
このトピックで説明されている手順に従って、上記のトポロジに示されている環境を構築できます。 このトピックでは、例としてCentOS上のElastic Compute Service (ECS) インスタンスを使用します。
手順 1 :NGINX リバースプロキシの展開
NGINXをインストールします。
sudo yum install nginx
プロキシサーバーを指すリバースプロキシを設定します。
次のコマンドを実行して、/etc/nginx/nginx.confファイルを開きます。
vim /etc/nginx/nginx.conf
/etc/nginx/nginx.confファイルで、次の情報を設定します。
http { upstream web{ server 10.10.0.10; server 10.10.0.11; server 10.10.0.12; server 10.10.0.13; } server { listen 80; location / { proxy_pass http://web; } } }
手順2: ファイルシステムとマウント対象の作成
リージョンにネットワークファイルシステム (NFS) ファイルシステムを作成します。 詳細については、「NASコンソールでの汎用NASファイルシステムの作成」をご参照ください。
説明ファイルシステムと、ファイルシステムがマウントされているECSインスタンスは、同じリージョンに存在する必要があります。
仮想プライベートクラウド (VPC) にマウントターゲットを作成します。 詳細については、「マウントターゲットの作成」をご参照ください。
手順 3:NGINX プロキシサーバーの展開
次のコマンドを実行してNGINXをインストールします。
sudo yum install nginx
次のコマンドを実行してNFSクライアントをインストールします。
sudo yum install nfs-utils
次のコマンドを実行して、NGINX Webサイトのディレクトリにファイルシステムをマウントします。
sudo mount -t nfs -o vers=4.0,file-system-id.region.nas.aliyuncs.com:/ /usr/share/nginx/html/
上記のコマンドで、file-system-id.region.nas.aliyuncs.com:/はマウントターゲットのドメイン名を指定します。 ビジネス要件に基づいてドメイン名を置き換えます。
NGINXルートファイルを編集します。
echo "This is Testing for Nginx&NAS"> /usr/share/nginx/html/index.html
上記の手順を繰り返して、他の3つのNGINXプロキシサーバーを構成し、各プロキシサーバーに同じNFSファイルシステムをマウントします。
設定結果を確認します。
各NGINXプロキシサーバーがindex.htmlルートファイルにアクセスできる場合、プロキシサーバーは正常に設定されます。