docker に基づいて nginxssl 設定を開始する

docker に基づいて nginxssl 設定を開始する

前提条件

  • クラウドサーバー(Alibaba Cloud、Tencent CloudなどのcentOS)
  • サーバーにはDockerが必要です(インストール方法はここでは紹介しません)
  • ドメイン名
  • SSL 証明書 (2 つのファイル: 1 つはキー サフィックス付き、もう 1 つは pem サフィックス付き。生成方法は多数ありますが、ここでは紹介しません)

最新のnginx dockerイメージをダウンロードする

docker pull nginx:最新

以下の関連項目を保存するためのディレクトリnginxを作成します

mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf

静的 HTML ページを /home/nginx/www フォルダーに配置します。

次のように、作成した /home/nginx/conf フォルダーの下に nginx.conf というファイルを作成します。

ユーザー nginx;
ワーカープロセス 1;
 
error_log /var/log/nginx/error.log 警告;
pid /var/run/nginx.pid;
 
 
イベント {
  ワーカー接続 1024;
}
 
 
http {
  /etc/nginx/mime.types を含めます。
  デフォルトタイプ アプリケーション/オクテットストリーム;
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log /var/log/nginx/access.log メイン;
 
  ファイル送信オン;
  #tcp_nopush オン;
 
  キープアライブタイムアウト65;
 
  #gzip オン;
 
  /etc/nginx/conf.d/*.conf を含めます。

nginxをデプロイする

docker run -d -p 80:80 -p 443:443 --name nginx-server -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx

コマンドの説明:

-p 80:80: コンテナのポート 80 をホストのポート 80 にマップします。

-p 443:443: コンテナのポート 80 をホストのポート 443 にマップします。
--name nginx-server: コンテナの名前を nginx-server にします。

-v /home/nginx/www:/usr/share/nginx/html: 作成した www ディレクトリをコンテナの /usr/share/nginx/html にマウントします。

-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf: 自分で作成した nginx.conf をコンテナの /etc/nginx/nginx.conf にマウントします。

-v /home/nginx/logs:/var/log/nginx: 自分で作成したログをコンテナの /var/log/nginx にマウントします。

開始後はドメイン名を通じて HTML ページにアクセスできるようになりますが、これで終わりではありません。

nginx.confを変更する

先ほど作成した nginx.conf ファイルに次の内容を挿入します。(注: 最初に再起動しないでください)

サーバー{
  443 ssl を聴く;
  サーバー名 fightingtop.cn www.fightingtop.cn;
  ルート /usr/share/nginx/html;
  ssl_certificate /ssl/certificate.pem;
  ssl_certificate_key /ssl/2832429_fightingtop.cn.key;
  ssl_session_timeout 5分;
  ssl_session_cache 共有:SSL:1m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:aNULL:!MD5:!ADH:!RC4;
  ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers をオン;
 
  位置 / {
    ルート /usr/share/nginx/html;
    インデックス index.html index.htm;
  }
}
 
サーバー{
  聞く 80;
  サーバー名 fightingtop.cn www.fightingtop.cn;
  ^ https://$host$1 を永続的に書き換えます。
}

2つの証明書ファイルをnginxコンテナにコピーします

まずnginxコンテナに入り、ルートディレクトリに証明書を保存するためのsslフォルダを作成します。

docker exec -it aa5badebd38a /bin/bash cd / mkdir ssl

証明書のコピーを開始する

docker cp /home/ssl/certificate.key aa5badebd38a:/ssl/
docker cp /home/ssl/certificate.pem aa5badebd38a:/ssl/

完了です。再起動して完了です。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker を使用して Nginx をインストールし、ポート転送の問題と解決策を構成する
  • DockerはNginxをデプロイし、リバースプロキシを構成する
  • Docker nginx + https サブドメイン設定の詳細なチュートリアル
  • Dockerでnginxをデプロイし、設定ファイルを変更する方法
  • nginxはdockerコンテナ内に設定ファイルを自動的に生成します
  • Docker での nginx プラグインの設定とファイルの詳細な説明

<<:  クリックイメージ反転効果を実現するJavaScript

>>:  Webページ作成の質問: 画像ファイルのパス

推薦する

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

Windows 10 64 ビット版に MySQL 5.6.35 をインストールするためのグラフィック チュートリアル

1. MySQL Community Server 5.6.35をダウンロードするダウンロードアドレ...

Yahooのフロントエンド最適化に関する35のルールについての簡単な説明

概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...

JavaScript のよりエレガントなエラー処理方法 async await

目次背景なぜエラー処理が必要なのでしょうか? async await より適切なエラー処理まとめ要約...

Vue はグラフィック検証コードログインを実装します

この記事では、グラフィック認証コードログインを実装するためのVueの具体的なコードを参考までに紹介し...

シンプルなアコーディオン効果を実現するjs

この記事では、アコーディオン効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

MySQLでトリガーを作成する方法

この記事の例では、参考のためにMySQLトリガーを作成するための具体的なコードを共有しています。具体...

MySQLテーブルをコピーする方法

目次1.mysqlダンプ実行プロセス:特徴2. CSVファイルをエクスポートする(最も柔軟性が高い)...

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

mysql5.7.24 バージョンのインストール手順と解凍時に発生した問題の概要

1. ダウンロード参考: 2. D:\MySQL\mysql-5.7.24 などの固定の場所に解凍し...

React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。 &...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

Docker で SVN サーバーを構築するチュートリアル

SVN は Subversion の略称で、ブランチ管理システムを使用して効率的に管理するオープンソ...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント。ウェブサイトのアクセス速度...

Nginx の add_header ディレクティブに注意する必要があるのはなぜですか?

序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...