わずか 3 ステップで Docker を使用して Nginx リバース プロキシを作成する

わずか 3 ステップで Docker を使用して Nginx リバース プロキシを作成する

Web アーキテクチャでは、俊敏性とスケーラビリティが不可欠であり、最適なパフォーマンスを確保しながらサービスを管理する必要があります。

この目的を達成するには、リバース プロキシを使用できます。リバース プロキシは非常に柔軟性が高く、クライアントとサーバー間のやり取りと通信を簡素化します。

図に示すように、リバース プロキシは、さまざまな部署やエリアがある建物内の受付係のようなものです。受付担当者は顧客または訪問者を適切な部署に誘導します。彼らは訪問者の誘導、問い合わせへの対応、さまざまな部門間の分配の確保を担当します。

写真

リバース プロキシの用途は次のとおりです。

  1. スケーラビリティのための負荷分散。
  2. SSL と TLS を終了します。
  3. サブドメインを特定のパスにマップします。

この記事では、Nginx と Docker コンテナを使用してリバース プロキシを設定します。

ステップ1. アプリケーションを作成する

完全なコードをダウンロードしてください。

まず、プロキシとして機能するアプリケーションを構築します。

このアプリケーションの / エンドポイントにアクセスしたときに単純な HTML ページを表示する Docker ファイルを作成します。

 FROM nginx:stable-alpine COPY index.html /usr/share/nginx/html/index.html

index.html ファイルは次のとおりです。

 <h1>This is the main app</h1>

このアプリケーションを実行するための簡単な Docker Compose ファイルを作成します。

 version : '3.7' services : web: build: . ports: - "8080:80"

次のコマンドを実行して Docker Compose を起動します。

 docker-compose up

localhost:8080 にアクセスすると、次のように表示されます。

写真

同様の方法で、2 つの HTML ファイルと同じ Dockerfile を使用して、2 つの異なるアプリケーションを作成します。

 This is html file for app1 <h1>This is APP 1</h1> This is html file for app2 <h1>This is APP 2</h1>

Docker Compose ファイルを変更して、次の 2 つのコンテナを起動します。

 version : '3.7' services : web: build: . ports: - "8080:80" restart: always app1: build: ./app1/ ports: - "8085:80" restart: always app2: build: ./app2 ports: - "8010:80" restart: always

ポート 8085 および 8010 にアクセスすると、次の内容が表示されます。

写真

ステップ2: Nginxの設定を記述する

/app にアクセスするときに app1 と app2 の間でプロキシするように Nginx 構成ファイルを書き込み、/ エンドポイントにメイン ページのみを表示します。

Nginx の設定は次のようになります。

 worker_processes 1; ## Default: 1 worker_rlimit_nofile 8192; http { upstream cloud_server_com { server app1:80; server app2:80; } server { listen 80; location /app/ { proxy_pass http://cloud_server_com/; } location / { root /usr/share/nginx/html; index index.html; } } }

構成ファイルは、グループ化されたサーバーのグループを定義します。ここでは、Docker Compose ファイルで定義されているコンテナ名とポート番号を指定します。

場所は、Nginx が特定のエンドポイントへのリクエストを処理する方法を定義するのに役立ちます。 /app/ は、両方のアプリケーションのコンテナである cloud_server_com アップストリームにリクエストを送信します。

proxy_pass はリクエストがリダイレクトされる場所を決定します。

ここで、Docker Compose ファイルはこの構成を読み取ることができる必要があるため、Compose ファイルを次のように変更する必要があります。

 version : '3.7' services : web: build: . ports: - "8080:80" volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf restart: always app1: build: ./app1/ ports: - "8085:80" restart: always app2: build: ./app2 ports: - "8010:80" restart: always

ステップ3: コンテナを実行する

docker-compose up コマンドを実行し、ブラウザでリバース プロキシがどのように動作するかを確認します。

これは / エンドポイントで実行されているメイン アプリケーションです。

写真

ただし、/app/ エンドポイントにアクセスすると、2 つの異なるサーバーが返され、プロキシはリクエストを app1 と app2 に 1 つずつ送信します。

写真

<<:  クラウドコンピューティング環境はネットワークの可視性に課題をもたらす

>>:  Dockerはどのように機能しますか?知っていましたか?

推薦する

dedipath: シアトルのデータセンターVPSの簡単なレビュー。データからdedipathの優秀さがわかる

今月、米国西海岸のシアトルに Dedipath の新しいデータセンターが開設され、専用サーバーと V...

分散ストレージのメタデータ設計

[[247858]]従来のストレージ設計方法には、主に以下のカテゴリが含まれます。 GlusterF...

Bilibiliはどうやって「三重の門」を越えるのでしょうか?

あらゆるインターネットアプリケーションの中でも、ビリビリはコンテンツを通じてZ世代の心をしっかりと掴...

百度に略奪されたウェブサイトを8日間で復元

最近、Baiduのアルゴリズムが頻繁に変更され、著者のウェブサイトを含む多くのウェブマスターが深刻な...

2019年の展望: コンテナクラウド戦争が激化、フルスタッククラウドが一般的なトレンドに

[51CTO.com からのオリジナル記事] クラウド コンピューティング テクノロジーに関しては、...

rfchost-香港 100M 直接接続/SunnyVision データセンター/VPS 評価付き

rfchost.com は最近、香港の VPS、KVM 仮想化、solusvm パネル、SunnyV...

bandwagonhost-Restock/512mメモリVPS年間支払い12ドル/Alipay

bandwagonhost はご存知のとおり、長い間安価な製品を提供していません。今回、同社はフェニ...

APPプロモーション:主流の顧客獲得チャネルと方法

アプリ開発技術の発展と開発コストの削減により、ますます多くのインターネット企業が独自のアプリを開発す...

スマートホストはどうですか?フェニックス(アリゾナ州、米国)データセンターの VPS のレビュー

スマートホストはどうですか?スマートホストは良いですか? Smarthost は、米国西海岸南部に位...

中国聯通と中国電信の4Gの全体的な遅れは、本当に標準の問題なのでしょうか?

すべてのデータは、中国の4G産業が飛躍的発展の段階に入ったことを示している。最近、工業情報化部は2月...

オウルクラウド:米国200G高防御クラウド - 10元/月、香港クラウド - 15元/月、カナダ480G高防御クラウド - 23元/月

Oulu Cloudは主に、自由にカスタマイズできる弾力性のあるクラウドサーバーを運営しています。カ...

Tuiba: Flash ウェブサイトの代替を作成し、Flash ウェブサイトを最適化します

現在、Flash ウェブサイトの SEO 最適化は、本当に難しい問題です。SEO の専門家であれ、ウ...

医療業界は「微博をコントロールする」から「微博をコントロールする」まで、ほんの数ステップで済む。

バスの中で携帯電話を手に持ち、自分の生活をライブストリーミングしている男女をよく見かけます。彼らは典...