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

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

Sep 05, 2023 pm 05:49 PM
docker nginx プロキシサーバー

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Dockerコンテナを使用したJavaEEアプリケーションのデプロイ Jun 05, 2024 pm 08:29 PM

Docker コンテナを使用した Java EE アプリケーションのデプロイ: Dockerfile を作成してイメージを定義し、イメージを構築し、コンテナを実行してポートをマップし、ブラウザでアプリケーションにアクセスします。サンプル JavaEE アプリケーション: REST API はデータベースと対話し、Docker 経由でデプロイ後にローカルホストでアクセスできます。

WordPressサイトファイルアクセスは制限されています:なぜ私の.txtファイルがドメイン名からアクセスできないのですか? WordPressサイトファイルアクセスは制限されています:なぜ私の.txtファイルがドメイン名からアクセスできないのですか? Apr 01, 2025 pm 03:00 PM

WordPressサイトファイルアクセスが制限されています:最近.txtファイルにアクセスできない理由のトラブルシューティング。一部のユーザーは、ミニプログラムのビジネスドメイン名を構成する際に問題に遭遇しました:�...

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

同じサーバー上のnginx構成を介してphp5.6とphp7を共存する方法は? 同じサーバー上のnginx構成を介してphp5.6とphp7を共存する方法は? Apr 01, 2025 pm 03:15 PM

同じシステムで複数のPHPバージョンを同時に実行することは、特に異なるプロジェクトがPHPの異なるバージョンに依存する場合、一般的な要件です。同じようになる方法...

H5プロジェクトの実行方法 H5プロジェクトの実行方法 Apr 06, 2025 pm 12:21 PM

H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

See all articles