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 の導入とリモート アクセス構成

推薦する

Dockerの匿名マウントと名前付きマウントの具体的な使用法

目次データ量匿名マウントと名前付きマウントデータボリュームの場所データ量匿名マウントと名前付きマウン...

Linux Centos でスクリプトを使用して Docker をインストールする方法

Dockerの主な機能は何ですか?現在、Docker には少なくとも次のアプリケーション シナリオが...

js は、州、市、地区の 3 段階の選択カスケードを実装します。

この記事では、省、市、地区の3段階選択を実現するためのjsの具体的なコードを紹介します。具体的な内容...

Dockerにおけるオーバーレイネットワークの詳細な説明

Docker 公式ドキュメントからの翻訳、原文: https://docs.docker.com/n...

MySQL ストアド プロシージャ (in、out、inout) の詳細な説明

1. はじめにバージョン 5.0 以降でサポートされています。特定の機能を実行するための SQL ス...

テキストの円形スクロールアニメーションを実装するミニプログラム

この記事では、参考までに、テキストループスクロールを実現するアプレットの具体的なコードを例を挙げて紹...

CSSで半透明の背景色を実現する2つの方法について簡単に説明します。

ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...

MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します

この質問は、MySQL の権限に関する WeChat グループのネットユーザー間の議論です。次のよう...

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

nginx の default_server 定義とマッチングルールの詳細な説明

nginx の default_server ディレクティブは、server_name と一致しない...

MySQL の中国語文字化け問題の解決方法

1. LinuxのMySQLで中国語の文字化けが発生する。以下の操作を実行する。 vi /etc/m...

MySQL InnoDB の重要なコンポーネントの概要

Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...

Next.js 入門チュートリアル

目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...

Vue フロントエンド開発補助機能状態管理詳細例

目次マップ状態マップゲッターマップミューテーションマップアクション例まとめマップ状態コンポーネントが...

IE7 互換モードで IE8 を有効にするコード

最も人気のあるタグはIE8ですブラウザベンダーはバージョンアップデートのリリースに躍起になっている一...