Dockerでnginxをデプロイし、設定ファイルを変更する方法

Dockerでnginxをデプロイし、設定ファイルを変更する方法

Dockerでnginxをデプロイするのはとても簡単です

たった 1 行のコマンド:

docker 実行 \
 --name nginx-health-web-pc \
 -d -p 6800:80 \
 nginx のディレクトリを /usr/docker/nginx/html にコピーします。
 nginx

実行して起動するのは楽しいです~~~~~このと​​き、フロントエンドが突然やって来て、「nginx に設定を追加する必要があります」と言い、さらに「誰それさんが以前このように設定しました」とも言います。

もちろんこの時点で拒否することはできませんが、実際の構成にはまだ少し考えが必要です。通常、Docker は起動時に構成されます。構成ファイルのディレクトリをマウントするだけで、シンプルで便利です。ただし、nginx は最初にメイン構成ファイル nginx.conf をロードし、次に nginx.conf 内の conf.d ディレクトリにあるサブ構成ファイル (通常は少なくとも 1 つの default.conf ファイル) をロードします。これはディレクトリを個別にマウントするよりもはるかに面倒ですが、明確なアイデアがあれば難しくはありません。

まず、マウントされたコマンドを見てみましょう。

Dockerコマンドを起動する

docker 実行 \
 --name myNginx \
 -d -p 80:80 \
 -v /usr/docker/myNginx/html:/usr/share/nginx/html \
 nginx.conf を /etc/docker/myNginx/nginx.conf にコピーします。
 ディレクトリを /etc/docker/myNginx/conf.d に変更します。
 nginx

ここで注意すべき点がいくつかあります:

(1) 最初の「-v」はプロジェクトの場所です。プロジェクトをマウントされているディレクトリに置くだけです。

(2) 2 番目の「-v」はマウントされているメイン設定ファイル「nginx.conf」です。「nginx.conf」ファイルには「include /etc/nginx/conf.d/*.conf;」という行があることに注意してください。この include はサブ設定ファイルのパスを指しています。include に続くパスは間違ってはならないことに注意してください。

(3) 3番目の「-v」は、サブ構成ファイルのパスをDockerにマウントします。これは、(2)のincludeで指定されたパスと一致している必要があることに注意してください。

(4) nginx.confはファイルをマウントし(Dockerはこれを推奨していません)、conf.dはディレクトリをマウントすることを強調することが重要です。

まず起動して、設定ファイルがまだ存在しないために問題があることを確認します。

プロファイルの設定

従来の方法でnginxをインストールしたときに生成された設定ファイル(通常は「/etc/nginx」の下)を上記の起動コマンドのマウント場所に対応して探し、メイン設定ファイルnginx.confを対応する場所「/etc/docker/myNginx/nginx.conf」に配置し、サブ設定ファイル「default.conf」を「/etc/docker/myNginx/conf.d」ディレクトリに配置します。

起動コマンドを再実行し、すでに正常であることを確認します。この時点で、docker内のファイルは自由に構成できます。これは、ネイティブインストールとまったく同じです。

アイデア: 構成するときには、マウントされたファイルは実行時に docker プロセスにロードされる必要があるというアイデアが必要です。こうすれば混乱しにくくなります。

---------------------------------------------------分割線-------------------------------------------------------

設定ファイルを投稿します:

nginx.conf

ユーザー root;
ワーカープロセス 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 を含めます。
 クライアントの最大ボディサイズは100Mです。
 クライアント_ヘッダー_バッファ_サイズ 128k;
 ラージクライアントヘッダーバッファ 4 128k;
}

デフォルト.conf

サーバー{
 聞く 80;
 server_name ローカルホスト;
 
 #文字セット koi8-r;
 #access_log /var/log/nginx/log/host.access.log メイン;
 
 位置 / {
  ルート /usr/nginx/dacheng-wechat-web;
  # ルート /usr/nginx/html;
  インデックス index.html index.htm;
  自動インデックスオン;
 try_files $uri /index/index/page.html;
  #try_files $uri /index/map/page.html;
 }
 
 #エラーページ 404 /404.html;
 
 # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
 #
 エラーページ 500 502 503 504 /50x.html;
 場所 = /50x.html {
  ルート /usr/share/nginx/html;
 }
 
 # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします
 #
 #場所 ~ \.php$ {
 # プロキシパス http://127.0.0.1;
 #}
 
 # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します
 #
 #場所 ~ \.php$ {
 #ルートhtml;
 #fastcgi_pass 127.0.0.1:9000;
 # fastcgi_index インデックス.php;
 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
 #fastcgi_params を含めます。
 #}
 
 # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する
 # nginxのものと一致します
 #
 #場所 ~ /\.ht {
 # すべて拒否;
 #}
}

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

以下もご興味があるかもしれません:
  • DockerでNginx+PHP+MySQL環境を構築し、WordPressをデプロイする
  • 初心者のための Docker と NGINX の導入手順の詳細
  • 複数のプロジェクトをデプロイする Docker nginx の例
  • Docker デプロイメント nginx 実装プロセスのグラフィックとテキストによる詳細な説明
  • DockerはNginxをデプロイし、リバースプロキシを構成する
  • Docker+Nginx を使ってシングルページアプリケーションをデプロイする
  • Docker Nginxコンテナの制作と展開の実装方法
  • Docker に Nginx をデプロイする方法

<<:  vue WatchとComputedの使用の概要

>>:  Linux での MySQL 5.7 の導入とリモート アクセス構成

推薦する

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選...

Vue は URL に基づいて非同一オリジンのファイルをどのようにダウンロードするのか

一般的に、URL に基づいてファイルをダウンロードする場合、次の 2 つの解決策があります。 1. ...

Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明

目次01 背景02 はじめに03 ワークフロー04 いくつかの質問05 ファイルをバックアップする0...

Vue ElementUI で Excel ファイルを手動でサーバーにアップロードする方法の詳細な説明

目次概要プロパティ設定処理ロジック概要具体的な需要シナリオは次のとおりです。 Excel ファイルを...

ページリファクタリングスキル - コンテンツ

雑談はここまでにして、インターネット上で見つかる高性能な Yahoo ウェブサイトを構築するための数...

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...

Linux で MySQL スケジュール タスク バックアップ データを実装する方法

序文バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

この記事では、Docker を使用して MySQL をデプロイし、データを保持する方法について簡単に...

MySQLの使い方の詳細な説明

目次1. はじめに2. 本文2.1 Where句の位置2.2 演算子2.3 NULL値1. はじめに...

React+TypeScriptプロジェクト構築事例解説

React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそ...

MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離

目次1.同時アクセス制御2. 取引1. トランザクションは ACID 原則に従います。 2. トラン...

HTMLで特殊記号を表示する(特殊文字対応表付き)

問題の再現HTML を使用して編集する場合、特殊記号によってエラーが表示されることが多く、極端な場合...

TomcatはLog4jを使用してcatalina.outログを出力します。

Tomcat のデフォルトのログは java.util.logging を使用しますが、これにはい...

JavaScript でのプロキシの使用を理解するための記事

目次エージェントとは何かプロキシの基礎知識ハンドラオブジェクトのメソッドプロキシでできること参考文献...

MySQL カーソル関数と使用法

目次意味カーソルの役割カーソルの使用カーソルの宣言カーソルを開くカーソルデータのトラバースカーソルを...