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

ブログ    

推薦する

テーブルはセルとimg画像を結合してtd HTML全体を埋めます

ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...

nginx をベースにリロードなしでアップストリーム サーバーの動的な自動起動と停止を実装する方法

目次1. Consulクラスタをデプロイする1. 準備3. Consulクラスタを作成する4. 管理...

vue+tp5はシンプルなログイン機能を実現

この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介しま...

Vue で配列をクリアするいくつかの方法 (要約)

目次1. はじめに2. データを消去するいくつかの方法2.1 ref() の使用2.2 スライスの使...

一般的なDockerコマンドの概要

Dockerのインストール1. 要件: Linuxカーネルバージョン3.10以上 表示: uname...

MySQL の遅いクエリの例

導入スロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメントを記録で...

CocosCreator ユニバーサルフレームワークデザインネットワーク

目次序文Websocketの使用Websocketオブジェクトの構築Websocket ステータスW...

LeetCode の SQL 実装 (184. 部門内で最も高い給与)

[LeetCode] 184. 部門最高給与従業員テーブルにはすべての従業員が保存されます。すべて...

MySQLオンラインDDL gh-ostの使用の概要

背景: DBA として、大規模なテーブルの DDL 変更のほとんどは、Percona の pt-on...

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

XHTML チュートリアル、XHTML の基礎を簡単に紹介します

<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...

MySQL 8.0.18はデータベースにユーザーを追加し、権限を付与します

1. データベースにログインするには、rootユーザーを使用することをお勧めします。 mysql -...

時点に基づくMySQLクイックリカバリソリューション

なぜこのような記事を書いたかというと、数日前の夜、仕事が終わろうとしていたときに、業務側で突然、テー...

border-radiusは要素に丸い境界線を追加する方法です

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...