nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解決方法を説明します。

1. 相対パスの問題

たとえば、設定ファイル内の場所の設定

場所 ~ .php${
 ルート HTML
 }

location の root が指す html は相対パスであり、この設定ファイルのパスを基準としています。この設定ファイルの場所が /etc/nginx/conf.d であると仮定すると、この html の絶対パスは /etc/nginx/conf.d/html になります。したがって、不要なトラブルを避けるために、ルート パスを設定するときは絶対パスを使用することをお勧めします。

2. パス継承問題

2.1 ケース1

サーバーが次のように宣言した場合:

ルート /usr/share;

そして場所の説明:

位置 /{
 ルート /usr/html/www
 }

この時点で、場所のパスが最初に使用されます

2.2 2番目のケース

ルート パスが location で宣言されていない場合:

場所 /アプリ {

}

デフォルトでは、場所の外部でルートによって宣言されたパスが使用されます。

3. ホームページの設定

サーバー宣言で次のように宣言します。

index index.html index.php

次に、/ をリクエストすると、内部的に url/index.php または url/index.html にリダイレクトされます。
次に、関連する場所が一致して解析されます。

nginx.confファイルの詳細な説明

公式サイトでは各モジュールパラメータの設定について説明しています: Nginx Chinese Documentation

## コード ブロック内の events、http、server、location、upstream などはすべてブロック構成項目です。##
##ブロック構成項目はネストできます。内側のブロックは外側のブロックを直接継承します。たとえば、サーバー ブロック内の構成はすべて、http ブロック内の既存の構成に基づいています。

##Nginxワーカープロセスを実行しているユーザーとユーザーグループ#構文: user username[groupname] デフォルト: user nobody nobody
#user は、マスター プロセスの開始後にフォークされたワーカー プロセスが実行されるユーザーとユーザー グループを設定するために使用されます。 「user username;」に設定すると、ユーザーグループ名はユーザー名と同じになります。
#ユーザーが configure コマンドを実行するときに --user=usergroup および --group=groupname パラメータを使用すると、nginx.conf はパラメータで指定されたユーザーとユーザー グループを使用します。
#ユーザーnobody;

##Nginx ワーカー プロセスの数: この数はパフォーマンスに直接影響します。
#各ワーカープロセスはシングルスレッドプロセスであり、さまざまなモジュールを呼び出してさまざまな機能を実装します。これらのモジュールにブロッキング呼び出しがない場合、プロセスの数は CPU コアの数に応じて構成する必要があります。逆に、ブロッキング呼び出しが発生する可能性がある場合は、より多くのワーカー プロセスを構成する必要があります。
ワーカープロセス 1;

##SSL ハードウェア アクセラレーション。
#ユーザーはOpenSSLが提供するコマンドを使用して、SSLハードウェアアクセラレーションデバイスがあるかどうかを確認できます: openssl engine -t
#ssl_engine デバイス;

##デーモン。ターミナルを離れることなくバックグラウンドで実行できるプロセスです。プロセス実行中の情報がどの端末にも表示されないようにするため、端末から分離されています。この方法では、端末によって生成された情報によってプロセスが中断されることはありません。 ##
##デーモン モードをオフにします。このモードは、nginx の追跡とデバッグを容易にするために提供されています。結局のところ、gdb を使用してプロセスをデバッグするときに最も面倒なのは、フォークされた子プロセスをどのように追跡し続けるかということです。 ##
##master_proccess モードがオフの場合、ワーカープロセスはリクエストを処理するためにフォークされませんが、マスタープロセス自体がリクエストを処理するために使用されます #daemon off; #Nginx がデーモンプロセスとして実行されているかどうかを確認します。デフォルトはオンです 
#master_process off; #マスター/ワーカーモードで作業するかどうか。デフォルトはオンです

##エラーログ設定#
#構文: error_log /path/file level;
#デフォルト: error_log / log/error.log error;
#パス/ファイルの値が /dev/null の場合、ログは出力されません。これはエラー ログを閉じる唯一の方法でもあります。
#レベルの値の範囲は、debug、info、notice、warn、error、crit、alert、emerge であり、レベルは左から右に向かって増加します。
#レベルがエラーの場合、error、crit、alert、emerge レベルのログが出力されます。このレベル以上のものは出力され、このレベル未満のものは出力されません。
# ログレベルがデバッグに設定されている場合は、すべてのログが出力されます。データ量が非常に多くなります。/path/file が配置されているディスクに十分なディスク容量があることを事前に確認する必要があります。レベルをデバッグに設定するには、configure 中に --with-debug 構成オプションを追加する必要があります。
#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;

## pid ファイルのパス (マスタープロセス ID の pid ファイル保存パス) #pid logs/nginx.pid;


イベント {
 #指定されたクライアントのデバッグレベルのログのみを出力します: 構文: debug_connection[IP|CIDR]
 #この設定項目は実際にはイベント設定に属しているため、有効にするには events{……} に配置する必要があります。その値は IP アドレスまたは CIRD アドレスになります。
 #debug_connection 10.224.66.14; #またはdebug_connection 10.224.57.0/24
 #この方法では、上記の IP アドレスからのリクエストのみがデバッグレベルのログを出力し、他のリクエストは引き続き error_log で設定されたログレベルを使用します。
 #注: debug_connection を使用する前に、configure の実行時に --with-debug パラメータが追加されていることを確認してください。そうでない場合、debug_connection は有効になりません。
 ワーカー接続 1024;
}

##コア ダンプ (コアダンプ): Linux システムでは、エラーまたはシグナルによりプロセスが終了すると、システムはデバッグ目的のみでプロセス実行のメモリ内容 (コア イメージ) をファイル (コア ファイル) に書き込みます。これをコア ダンプ (コアダンプ) と呼びます。

http {
##他の設定ファイルを埋め込む構文: include /path/file
#パラメータは絶対パスまたは相対パス(Nginx 構成ディレクトリ、つまり nginx.conf が配置されているディレクトリからの相対パス)のいずれかになります。
  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 ログ/access.log メイン;

  ファイル送信オン;
  #tcp_nopush オン;

  #キープアライブタイムアウト 0;
  キープアライブタイムアウト65;

  #gzip オン;

  サーバー{
##listen リスニングポート#構文: listen アドレス:ポート [ default(0.8.21 で非推奨) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]
#default_server: このパラメータが設定されていない場合、nginx.conf で見つかった最初のサーバー ブロックがデフォルトのサーバー ブロック listen 8080 として使用されます。

#ホスト名: 複数のホスト名が続く場合があります。HTTP リクエストを処理する際、nginx はヘッダー内の Host を取り出し、各サーバーの server_name と照合して、リクエストを処理するサーバーを決定します。ホストが複数のサーバー ブロック内の server_name と一致する可能性があります。この場合、処理されるサーバー ブロックは、一致する優先順位に基づいて選択されます。 server_name と Host の一致する優先順位は、この記事の最後に示されています。
 server_name ローカルホスト;

    #文字セット koi8-r;

    #access_log ログ/host.access.log メイン;

    #位置 / {
    #ルートhtml;
    # インデックス index.html index.htm;
    #}

##location 構文: location [=|~|~*|^~] /uri/ { ... }
# location の使用例については、記事の最後を参照してください。
#注: 場所は順序付けられます。リクエストが複数の場所に一致する可能性がある場合、リクエストは実際には最初の場所によって処理されます。
 位置 / {
 プロキシパス http://192.168.1.60;
    }

    #エラーページ 404 /404.html;

    # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
    #
    エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
      ルート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 {
    # すべて拒否;
    #}
  }



  # IP、名前、ポートベースの設定を組み合わせた別の仮想ホスト
  #
  #サーバー{
  # 8000を聴く;
  # somename:8080 をリッスンします。
  # server_name somename alias another.alias;

  # 位置 / {
  #ルートhtml;
  # インデックス index.html index.htm;
  # }
  #}


  # HTTPS サーバー
  #
  #サーバー{
  # 443 ssl をリッスンします。
  # サーバー名 localhost;

  # ssl_certificate cert.pem;
  # ssl_certificate_key cert.key;

  # ssl_session_cache 共有:SSL:1m;
  #ssl_session_timeout 5分;

  # ssl_ciphers HIGH:!aNULL:!MD5;
  # ssl_prefer_server_ciphers オン;

  # 位置 / {
  #ルートhtml;
  # インデックス index.html index.htm;
  # }
  #}

}

nginx.conf のルートディレクトリ設定問題の詳細説明は以上です。nginx.conf ルートディレクトリに関するより詳しい内容については、123WORDPRESS.COM の過去記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • nginx.conf ファイルの構文強調表示とフォーマット設定には nginx.vim ツールを使用します。
  • Nginx サーバー構成 HTTPS nginx.config 構成ファイル (チュートリアル)
  • Alibaba Cloud 上の ThinkPHP の nginx.config 設定例の詳細な説明
  • Nginx 設定ファイル nginx.conf の詳細な説明
  • Nginx 設定ファイル (nginx.conf) 設定の詳細 (概要)
  • Nginxサーバーのnginx.conf設定ファイルの詳細な説明
  • Nginx 設定ファイル nginx.conf の一般的な設定方法
  • Nginx 設定ファイル nginx.conf の共通パラメータの中国語での比較的完全な説明
  • Nginx の nginx.conf 設定ファイルに関する中国語のコメント
  • nginx 設定ファイル nginx.conf に関する中国語のコメント

<<:  MySQLが間違ったインデックスを選択する理由と解決策

>>:  Vue ページをリフレッシュするために provide と injection を適用する

推薦する

MySQLクエリが遅い理由

目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...

vueを使用して登録ページの効果を実現し、vueを使用してSMS認証コードログインを実現します

この記事の例では、登録ページの効果を実現するためのVueの具体的なコードを参考までに共有しています。...

初心者向けWebサイト構築ガイド⑥:FlashFXPの詳しい使い方

今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...

require loaderの実装原理の深い理解

序文Node は新しいプログラミング言語ではなく、JavaScript のランタイムに過ぎないとよく...

入力テキストボックスの入力実装プロパティを無効にする

今日は、開発でよく使われる、非常に便利な HTML タグをいくつかまとめてみたいと思います。これらの...

el-table のテーブルを最適化するために仮想リストを使用する方法についての簡単な説明

目次序文解決具体的な実装満たすべき前提条件質問序文テーブルをよく使用します。データ量が多い場合は直接...

Centos7 システムでの python2 と python3 の共存

最初のステップは、Python のバージョン番号とインストール パスを確認することです。 上記のビュ...

Vue+Echart 棒グラフで疫病データ統計を実現

目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...

Linuxでホスト名を永続的に変更する方法

ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...

Centos7.5でのIPアドレス設定の実装

1. IPアドレスを設定する前に、まずifconfigを使用してネットワークカード情報を表示し、ネッ...

MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明

概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...

一般的な docker コマンドの概要 (推奨)

1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...

よく使われる HTML タグとその特徴の完全なリスト

まず、HTML タグのいくつかの特性を知っておく必要があります。 1. 「<keyword&g...

CocosCreatorがスキル冷却効果を実装

CocosCreatorがスキルCD効果を実現多くのゲームにはスキルがあります。プレイヤーがスキルボ...