ホームページ  >  記事  >  運用・保守  >  Docker が nginx をデプロイし、構成ファイルを変更する方法

Docker が nginx をデプロイし、構成ファイルを変更する方法

WBOY
WBOY転載
2023-05-12 15:19:131433ブラウズ

たった 1 行のコマンドで完了します:

docker run \
 --name nginx-health-web-pc \
 -d -p 6800:80 \
 -v /usr/docker/nginx/html:/usr/share/nginx/html \
 nginx

実行して開始するのは楽しいです~~~~~このと​​き、フロントエンドが突然やってきてこう言いました。 nginx の設定」、ところで、彼は次のようにも言いました:通常の状況では、docker は起動時に構成されますが、構成ファイルがディレクトリーをマウントするだけなので、シンプルで便利ですが、nginx は最初にメイン構成ファイル nginx をロードします。 conf を開き、nginx.conf の conf.d ディレクトリにサブ設定ファイル (通常は少なくとも 1 つのdefault.conf ファイル) をロードします。これはディレクトリを単独でマウントするよりもはるかに面倒ですが、明確なアイデアがあれば難しいことではありません。

最初にマウントされたコマンドを見てみましょう:

docker を開始するコマンド

docker run \
 --name mynginx \
 -d -p 80:80 \
 -v /usr/docker/mynginx/html:/usr/share/nginx/html \
 -v /etc/docker/mynginx/nginx.conf:/etc/nginx/nginx.conf:ro \
 -v /etc/docker/mynginx/conf.d:/etc/nginx/conf.d \
 nginx
ここで注意すべき点がいくつかあります:


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

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

#(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 内のファイルは自由に構成できます。これはまさにネイティブ インストールと同じです。

考え: 構成時には 1 つのアイデアが必要です。マウントされたファイルは、実行時に Docker プロセスにロードされる必要があります。こうすることで混乱が少なくなります。

------------------------------------------ ------ -------分割線-------------------------------------- ------- --------------設定ファイルを投稿します:

nginx.conf

user root;
worker_processes 1;
 
error_log /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;
 
 
events {
 worker_connections 1024;
}
 
 
http {
 include  /etc/nginx/mime.types;
 default_type application/octet-stream;
 
 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 main;
 
 sendfile  on;
 #tcp_nopush  on;
 
 keepalive_timeout 65;
 
 autoindex on;
 
 #gzip on;
 
 include /etc/nginx/conf.d/*.conf;
 client_max_body_size 100m;
 client_header_buffer_size 128k;
 large_client_header_buffers 4 128k;
}

default。 conf

server {
 listen  80;
 server_name localhost;
 
 #charset koi8-r;
 #access_log /var/log/nginx/log/host.access.log main;
 
 location / {
  root /usr/nginx/dacheng-wechat-web;
  # root /usr/nginx/html;
  index index.html index.htm;
  autoindex on;
 try_files $uri /index/index/page.html;
  #try_files $uri /index/map/page.html;
 }
 
 #error_page 404    /404.html;
 
 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
  root /usr/share/nginx/html;
 }
 
 # proxy the php scripts to apache listening on 127.0.0.1:80
 #
 #location ~ \.php$ {
 # proxy_pass http://127.0.0.1;
 #}
 
 # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
 #
 #location ~ \.php$ {
 # root   html;
 # fastcgi_pass 127.0.0.1:9000;
 # fastcgi_index index.php;
 # fastcgi_param script_filename /scripts$fastcgi_script_name;
 # include  fastcgi_params;
 #}
 
 # deny access to .htaccess files, if apache's document root
 # concurs with nginx's one
 #
 #location ~ /\.ht {
 # deny all;
 #}
}

以上がDocker が nginx をデプロイし、構成ファイルを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。