ホームページ >バックエンド開発 >PHPチュートリアル >Docker で Nginx プロキシ サーバーを使用して Web サービスを保護するにはどうすればよいですか?

Docker で Nginx プロキシ サーバーを使用して Web サービスを保護するにはどうすればよいですか?

王林
王林オリジナル
2023-09-05 17:49:45703ブラウズ

Docker で Nginx プロキシ サーバーを使用して Web サービスを保護するにはどうすればよいですか?

Docker で Nginx プロキシ サーバーを使用して Web サービスのセキュリティを保護するにはどうすればよいですか?

インターネットの急速な発展に伴い、Web アプリケーションの展開の重要性がますます高まっており、アプリケーションのセキュリティも考慮する必要があります。 Nginx は、Web サービスのセキュリティを保護する強力な機能を提供する高性能 Web サーバーおよびリバース プロキシ サーバーです。 Docker は、コンテナーのデプロイメントで広く使用されているオープン ソース プロジェクトであり、この 2 つを組み合わせることで、Web アプリケーションのセキュリティをより適切に保護できます。

この記事では、Docker で Nginx プロキシ サーバーを使用して Web サービスのセキュリティを保護する方法をコード例とともに紹介します。

ステップ 1: Docker と Docker Compose をインストールする
始める前に、まず Docker と Docker Compose をインストールする必要があります。 Linux システムでは、次のコマンドを使用して Docker をインストールできます:

sudo apt-get update
sudo apt-get install docker.io

その後、Docker Compose をインストールします:

sudo apt-get install docker-compose

ステップ 2: Docker コンテナーを作成する
Nginx プロキシ サーバーを使用する前に、Web サービスを実行するための Docker コンテナを最初に作成する必要があります。以下は、簡単な Node.js アプリケーションの例です。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

上記のコードを app.js として保存します。

次に、Docker イメージを構築するための Dockerfile という名前のファイルを作成します:

FROM node:12

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]

同じディレクトリで次のコマンドを実行して、Docker イメージを構築します:

docker build -t webapp .

次に、docker-compose.yml という名前のファイルを作成して、Docker コンテナーと Nginx プロキシ サーバーの構成を定義します。

version: '3'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3000
    networks:
      - proxy

  proxy:
    image: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 80:80
    networks:
      - proxy

networks:
  proxy:

同じディレクトリで次のコマンドを実行します。 Docker を起動します。コンテナと Nginx プロキシ サーバー:

docker-compose up -d

ステップ 3: Nginx プロキシ サーバーを構成する
次に、Docker コンテナで実行されている Web サービスにすべてのリクエストを転送するように Nginx プロキシ サーバーを構成する必要があります。 nginx.conf という名前のファイルを作成して、Nginx プロキシ サーバーを構成します:

worker_processes 1;

events {
  worker_connections 1024;
}

http {
  upstream webapp {
    server web:3000;
  }

  server {
    listen 80;

    location / {
      proxy_pass http://webapp;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

ファイルを保存し、Docker コンテナと Nginx プロキシ サーバーを再起動します:

docker-compose restart

ステップ 4:構成が有効かどうかをテストします。
これで、http://localhost にアクセスして、Nginx プロキシ サーバーが正常に構成されたかどうかをテストできます。すべてが正常であれば、Hello, World! という応答が表示されるはずです。

上記の手順により、Docker で Nginx プロキシ サーバーを使用して Web サービスのセキュリティを保護することに成功しました。 Nginx は、すべてのリクエストをリバース プロキシ経由で Docker コンテナ内で実行されている Web サービスに転送し、Web アプリケーションのセキュリティを保護する強力な機能を提供します。

概要:

  • Docker と Nginx を組み合わせると、Web アプリケーションのセキュリティを強力に保護できます。
  • コンテナを作成し、Docker と Docker を通じて Nginx エージェントを起動します。 Compose Server;
  • Nginx を使用してリバース プロキシを構成し、すべてのリクエストを Docker コンテナ内で実行されている Web サービスに転送します。

この記事が、Docker で Nginx プロキシ サーバーを使用して Web サービスのセキュリティを保護する方法を理解するのに役立つことを願っています。

以上がDocker で Nginx プロキシ サーバーを使用して Web サービスを保護するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。