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 elementUI フォームのネストされたテーブルと各行の検証の詳細な説明

目次エフェクト表示コードリンクキーコード表形式データコンポーネントのネスト検証方法リセット方法完全な...

MySQL で結果を選択して更新を実行する例のチュートリアル

1. 単一テーブルクエリ -> 更新 テーブル名の更新 フィールド1=新しい値1、フィールド2...

MySQL は SQL ステートメントの最新のレコードをクエリします (最適化)

最悪の選択肢は、結果を時間順に並べ替えて最初のものを取ることです。 *から選択 ここで、create...

Vue を通じて QR コードスキャン機能を実装する

ヒントこのプラグインは https プロトコルでのみアクセスできます。http プロトコルはうまく機...

組み込み Linux 開発環境で ping と nfs を構築するためのソリューション

1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...

CSS スタイル分類入門(基礎知識)

CSSスタイルの分類1. 内部スタイル ---- インラインスタイルスタイルタグの使用 <ス...

MySQL における制限関数と合計関数の混在使用の問題の詳細な説明

序文今日、注文データを同期した後、同僚は、合計注文金額とデータソースの合計金額に差があったため、LI...

MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル

この記事では、MySQL 8.0.11 MSIバージョンのインストールと設定のチュートリアルを参考ま...

マルチコア CPU を使用して Linux コマンドを高速化する方法 (GNU Parallel)

非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...

初心者向け入門チュートリアル④:サブディレクトリのバインド方法

これが何を意味するのかを理解するには、まずサブディレクトリとは何かを知る必要があります。では、サブデ...

ウェブサイトのフロントエンドをエレガントでユーザーにとって魅力的なものにする方法

ウェブフロントエンドのウェブサイトの気質は感情であり、言葉なしでユーザーを魅了できる感情です。では、...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

JavaScript コードベースをよりクリーンにする 5 つの方法

目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...

HTML で自動ページジャンプを実現する 5 つの方法

前回の記事では、HTML ページが 3 秒後に自動的にジャンプする一般的な 3 つの方法を紹介しまし...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...