わずか 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はどのように機能しますか?知っていましたか?

推薦する

iOS 10 のリリース後、ASO 最適化の新しい方法にはどのようなものがありますか?

APPの最適化は2つの側面に分かれています。1つ目は製品自体の最適化です。2つ目はWeChatリアル...

A5 SEO診断チームがオンライン価格マーケティング手法について語る

オンラインで多くの時間を費やした後、私たちは共通の現象を発見しました。それは、ほとんどの商品のオンラ...

Rushmail: 高品質の一括メールプラットフォームの選び方

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています仕事をうま...

vivo クラウドネイティブコンテナの探索と実装

vivo は 2018 年以来、コンテナをベースとしたワンストップのクラウドネイティブ機械学習プラッ...

Linodeについてはどうですか? [年] Linode ニューアークデータセンター簡易評価

Linode ニューアーク データセンターはどうですか? Linode ニューアーク データセンター...

サイト障害の原因を突き止め、解決する方法

おいしい料理を作るには、すべての調味料を適切に混ぜる必要がありますが、まずい料理を作るには、たった ...

time4vps: 75% オフ、リトアニア VPS、年間 16 ユーロから、2GB RAM/1 コア/20GB ハード ドライブ/4TB 帯域幅

time4vps は、2003 年に設立されたリトアニアの会社で、非常に古いブランドです。現在、ti...

VPShared - 10Gbps 保護を備えた VPS ホスティング、年間 3 ドルから

VPshared が変ですか?実際、彼はヴィルマックのブランドです! VPShared は、virm...

内部ページランキングを向上させるいくつかの方法

同じ競争条件下では、ホームページと比較すると、Web サイトの内部ページで良いランキングを達成するに...

ローコード + サーバーレスは、次世代デジタル企業の開発に新たなパラダイムを切り開きます

近年、ローコードは徐々に重要な方向になってきています。投資機関の注目を集めているだけでなく、多くの企...

中国におけるウェブサイト構築の発展にはどの程度の勢いがあるのでしょうか?

近年、経済の継続的な発展に伴い、中国のネットワーク構築市場は急速に発展し、成長してきました。データ分...

企業のウェブサイト最適化がキーワードランキングを維持できない理由

最近、何らかの最適化に取り組んでいる SEO 担当者は、奇妙な現象を発見しました。多くの企業 Web...

hosthatch: 年間 15 ドル、512 MB メモリ/1 コア/250 g ハード ドライブ/1 T トラフィック、メモリ 2 倍 + 9 T トラフィックの場合は +7 ドル

ホストハッチは米国独立記念日のプロモーションを行っています。この作戦は1か月遅れと言えるでしょうか?...

アリババクラウドは、数千の工場のデジタル変革を支援する「クラウド春雷」計画を開始

6月9日、アリババクラウドは2020クラウドサミットでアリババクラウド産業インターネットプラットフォ...

PaaS開発は2018年に転換点を迎えるかもしれない

過去 10 年間で、クラウド コンピューティングは初期から爆発的な成長を遂げました。 3 つのサービ...