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ページ作成の質問: 画像ファイルのパス

推薦する

JavaScriptはパスワードボックスの検証情報を実装します

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

Vue3 における provide と inject の使用法と原則

序文:親コンポーネントと子コンポーネント間でデータを渡す場合、通常は props と emittin...

docker-compose ネットワーク設定についての簡単な説明

ネットワーク使用チュートリアル公式サイト docker-compose.yml リファレンスドキュメ...

MySQL における IF()、IFNULL()、NULLIF()、および ISNULL() 関数の使用に関する詳細な説明

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

CSS でベジェ曲線の実装を反転する方法

まずは、以前書いた CSS カルーセルアニメーション効果を見てみましょう。アニメーションの遷移をスム...

CSS でのフレックスレイアウトの詳細な説明

フレックス レイアウトは、エラスティック レイアウトとも呼ばれます。任意のコンテナーをフレックス レ...

フロントエンドエンジニアが作ったクールなインタラクティブウェブサイトを推薦します

ウェブサイトリンク: http://strml.net/サミュエル・リード著ヒント: 昨日、Mome...

Docker クリーニングの一般的な方法と問題点

大規模な開発に Docker を使用する場合でも、クリーンアップ戦略がなければ、ディスクがすぐにいっ...

vue+elementUI で埋め込みテーブルを実装する方法の例

大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

XHTML の珍しいが便利なタグ

Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...

ウェブデザインでは、まずウェブサイトの包括的なイメージの位置付けが必要です。

⑴ 内容によって形式が決まります。まず内容を充実させ、次にブロックに分割し、トーンを決め、最後に細部...

ユニアプリプロジェクトでのウォーターフォールレイアウトの実装

GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアル1. プ...

ホスト上のDockerコンテナ内でシェルまたはプログラムを実行する

Docker コンテナに繰り返し入って操作することを避けるために、コンテナ内の一連の命令をホストマシ...