ホームページ  >  記事  >  バックエンド開発  >  Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成するにはどうすればよいですか?

Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-09-05 18:23:00701ブラウズ

Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成するにはどうすればよいですか?

Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成するにはどうすればよいですか?

1. 背景の紹介
現在の Web アプリケーション開発では、セキュリティは非常に重要な考慮事項です。 Web サービスへのアクセスを保護し、アプリケーションのセキュリティを向上させるために、Nginx をプロキシ サーバーとして使用できます。この記事では、Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成する方法を紹介します。

2. Docker のインストール
まず、ローカル マシンに Docker をインストールする必要があります。 Docker は、アプリケーションのデプロイと管理を容易にするオープンソースのコンテナ化プラットフォームです。 Docker 公式 Web サイトからオペレーティング システムに適した Docker バージョンをダウンロードし、公式ドキュメントに従ってインストールできます。

3. Nginx プロキシ サーバー コンテナーの作成

  1. コンテナ間の通信用に新しい Docker ネットワークを作成します:

    docker network create nginx-proxy
  2. 新しい Nginx プロキシ サーバー コンテナを作成し、新しく作成したネットワークに接続します。

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      jwilder/nginx-proxy

    この例では、jwilder/nginx-proxy イメージを使用しました。このイメージは、同じ Docker ネットワーク内で実行されているコンテナーを自動的に検出し、指定されたポートを Nginx プロキシ サーバーのポート 80 にマッピングできます。

4. Web サービス コンテナの作成

  1. 新しい Web サービス コンテナを作成し、以前に作成した Docker ネットワークに接続します。この例では、単純な Nginx コンテナを Web サービスとして使用します。

    docker run -d 
      --name web 
      --network nginx-proxy 
      -e VIRTUAL_HOST=example.com 
      nginx:latest

    この例では、環境変数 VIRTUAL_HOST=example.com を指定しました。これは、Nginx プロキシ サーバーに、example.com へのすべてのリクエストを nginx プロキシ ネットワークに接続されているコンテナに転送するように指示します。

  2. ニーズに応じて、さらに Web サービス コンテナを追加できます。両方が nginx-proxy ネットワークに接続されていることを確認し、対応する VIRTUAL_HOST 環境変数を設定してください。

5. 設定を確認します

  1. ローカル マシン上の hosts ファイルを変更し、example.com がローカル IP アドレスを指すようにします。

    sudo echo "127.0.0.1 example.com" >> /etc/hosts
  2. ブラウザを開いて「example.com」と入力します。すべてが正しく構成されていれば、Nginx のデフォルトのようこそページが表示されるはずです。

6. Web サービスへのアクセス権を保護する
Web サービスへのアクセス権を保護するために、Nginx の Basic 認証機能を使用できます。

  1. ユーザー名とパスワードを含むファイルを作成して認証情報を保存します:

    sudo sh -c "echo -n 'username:' >> /etc/nginx/.htpasswd"
    sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

    「ユーザー名」を希望のユーザー名に置き換えてください。

  2. 次の環境変数を Nginx プロキシ サーバー コンテナに追加して、基本認証を有効にします:

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      -v /etc/nginx/.htpasswd:/etc/nginx/.htpasswd:ro 
      -e HTTP_AUTHENTICATION=true 
      jwilder/nginx-proxy
  3. Nginx プロキシ サーバー コンテナを再起動します:

    docker restart nginx-proxy

    ここで、example.com にアクセスすると、ユーザー名とパスワードを求める認証ダイアログ ボックスが表示されます。

上記は、Web サービスへのアクセスを保護するために Docker で Nginx プロキシ サーバーを構成する方法の手順とサンプル コードです。このようにして、Web サービスを効果的に保護し、アプリケーションのセキュリティを向上させることができます。この記事がお役に立てば幸いです!

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

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