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

推薦する

IoT エッジにおける顧客体験

今日、データはコネクテッドカー、ドローン、冷蔵庫、洗濯機、フィットネス機器、さらにはペットの首輪など...

北京に拠点を置く電子商取引企業は、価格詐欺の再発を防ぐためにプロモーションを規制する必要がある。

昨日の夕方、「ダブル11」が近づく中、北京市発展改革委員会が北京の電子商取引企業に販促指導通知を発行...

徐明軍の企業ネットワーク最適化に関する提案

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス現実には、すべての企業が...

あまり語られることのない SEO コア戦略と Alibaba と DigitalOcean の例

一昨日、インターネットで「自社のウェブサイトを最適化するにはどうすればいいですか?ホームページだけを...

百度の5つの高圧線について簡単に説明する

Baidu は Baidu Knows に非常に高い重みを与えており、そこに外部リンクを作成するのは...

Kubernetesのヘッドレスサービスの簡単な概要

Kubernetes には多くの概念があり、その中には難しい名前を持つヘッドレス サービスなど、非常...

Pacificrack: 年間 29.99 ドル、8G メモリ/2 コア/50g SSD/5T トラフィック/2 スナップショット

Pacificrack は最近、トラブルを起こすのが好きになってきました。Cloudcone のイー...

Weiboマーケティングは本当に効果がなくなったのでしょうか? WeChatに追い抜かれるのでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス2012年から現在まで、...

ノボシビルスク VPS: 無料 www、月額 9 元、トラフィック無制限

free-www を知らない人も多いかもしれません。ノボシビルスクのデータセンターにある VPS は...

Oracle NetSuite は、Baichuan の「統合管理」の仁徳経絡をどのように開拓するのでしょうか?

インターネットやビッグデータなどの技術の発展により、家具業界は活況を呈しています。ますます多くの消費...

zxhost - 年間 17 ポンド / 460gDDoS 保護 / KVM / 1g メモリ / 120g ハードディスク / 6T トラフィック / OVH

安価で安定しており、ハード ドライブが大きく、トラフィックが多い VPS として、zxhost をお...

Aruba、802.11ax 規格をサポートする初の IoT ワイヤレス AP を発表

2018年12月18日、次世代ネットワークソリューションの世界的大手プロバイダーであるArubaは北...

Bitronic - 512M メモリ (xen)/10GSSD/512G 月間トラフィック/5.09 USD/月

2007 年に設立されたと主張する Bitronictech は、ドメイン名、SSL 証明書、仮想ホ...

中小企業は自社の企業ウェブサイトをどのように宣伝しているのでしょうか?

中小企業のマーケティングモデルは数多くありますが、その中でもウェブサイトの活用はますます増えています...