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 の一般的な問題とアプリケーション スキルの概要

序文MySQL の日常的な開発やメンテナンスでは、パスワードの紛失やテーブルの破損など、避けられない...

HTMLウェブページの基本概念の簡単な分析

ウェブページとは何ですか? HTML ドキュメントがブラウザカーネルによってレンダリングされた後に表...

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...

スクロールバーのスタイルを設定するための CSS サンプルコード

スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...

CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...

Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します

Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証...

MySQLデータベースのタイムアウト設定を構成する方法の例

目次序文1. JDBCタイムアウト設定2. 接続プールのタイムアウト設定3. MyBatisクエリの...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

Vue のフィルターの適用シナリオの詳細な説明

filterは通常、特定の値をフィルターするために使用されます。たとえば、フィールドが空だが、フロン...

jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します

この記事では、ウォーターフォールフローが底に達したときにデータを動的にロードするためのjsの具体的な...

画像を読み込むための JavaScript キャンバス

この記事では、画像を読み込むためのJavaScriptキャンバスの具体的なコードを参考までに紹介しま...

mysql update文の実行プロセスの詳細な説明

以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...

JavaScript BOM ロケーション オブジェクト + ナビゲーター オブジェクト + 履歴オブジェクト

目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...

MySQL 8.0.11 圧縮版のインストールチュートリアル

この記事では、MySQL 8.0.11のインストールチュートリアルを参考までに紹介します。具体的な内...