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

推薦する

CSS3 ボタン境界アニメーションの実装

まず効果を見てみましょう: html <a href="#"> &l...

nginxフォワードプロキシとリバースプロキシの詳細な説明

目次フォワードプロキシnginx リバースプロキシnginx リバースプロキシ 02リバースプロキシ...

スクロールバーを非表示にしながらもスクロール効果を維持する純粋な CSS (モバイルと PC)

携帯モバイル ページは Chrome および Safari とのみ互換性があればよいため、カスタム ...

MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明

著者は最近、仕事でパフォーマンスのボトルネックの問題に遭遇しました。MySQL テーブルには毎日約 ...

変数が空かどうかを判定するシェルの方法の概要

シェルで変数が空かどうかを判断する方法シェルプログラミングでは、パラメータのエラーチェック項目に、変...

Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします

前回の記事では、Docker を使用して Laravel アプリケーションをデプロイする方法について...

Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...

Vueはプルダウンを実装してさらに読み込む

Element-UI に慣れた開発者なら、無限スクロールの InfiniteScroll が使いにく...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

CSS 属性セレクタを使用して HTML DNA を接合する方法

CSS 属性セレクターは素晴らしいです。大量のクラス名を追加することを回避し、コード内の問題を指摘す...

Vueは虫眼鏡付きの検索ボックスを実装します

この記事では、Vueを使用して虫眼鏡付きの検索ボックスを実装する方法を紹介します。具体的な内容は次の...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...

HTML フォームタグチュートリアル (3): 入力タグ

HTML フォーム タグのチュートリアル。このセクションでは、主に Web ページで INPUT タ...

MySQL IN ステートメントにおける低速クエリの効率を最適化する手法の例

表の構造は以下のとおりです。記事数は690件のみです。 記事テーブル article(id,titl...

初心者向けのHTMLタグネストルールの詳細なまとめ

最近、HTML を再度学習しており、これは HTML に対する新たな理解と言えます。これを過小評価し...