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

推薦する

Vue における Vue.use() の原理と基本的な使用法

目次序文1. 例で理解する2. ソースコードを分析する3. まとめ要約する序文他の人のコンポーネント...

Tomcat サーバーの応答が遅い場合の解決策

1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...

MySQL でスロークエリを有効にする方法の例

序文スロー クエリ ログは、MySQL で非常に重要な機能です。MySQL のスロー クエリ ログ機...

MySQL 5.7.17 無料インストールバージョンの設定方法グラフィックチュートリアル (Windows10)

1. 概要ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージ...

CSS インライン スタイル、埋め込みスタイル、外部参照スタイルを使用する 3 つの方法

3 つの方法を使用する簡単な例は次のとおりです。インラインスタイル: <!doctypehtm...

MySQLクエリが遅い場合の理由と解決策

Python プログラムを書き、Mysql ライブラリを集中的に操作したためです。データ量が多くない...

JavaScript が Jingdong のカルーセル効果を模倣

この記事では、JD.comのカルーセル効果の表示を実現するためのJavaScriptの具体的なコード...

MySQL での and or クエリの優先度分析

これは見落とされがちな問題かもしれません。まず、次の点を明確にする必要があります。 MySQL では...

Dockerコンテナの紹介

1. 概要1.1 基本概念: Docker は、Go 言語をベースにしたオープンソースのアプリケーシ...

Reactフック入門チュートリアル

ステートフック例: 'react' から useState をインポートします。 関...

Kali Linux Vmware 仮想マシンのインストール (図とテキスト)

準備: 1. VMwareワークステーションソフトウェアをインストールする2. Kali Linux...

時間範囲効果を実現するためのJavaScript

この記事では、時間範囲効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...

tomcatでcatalina.outログをカットする3つの方法の詳細な説明

1. ログセグメンテーションのためのLog4j 1) log4j-1.2.17.jar、tomcat...

MySql 5.7.20 のインストールとデータおよび my.ini ファイルの構成

1. まずMySqlの公式サイトからダウンロードします参考: https://www.jb51.ne...

CSS3を使用してトランジションとアニメーション効果を実現する

JS アニメーションの代わりに CSS アニメーションを使用する必要があるのはなぜですか? Java...