1. ホーム
  2. nginx

nginxのconfファイルは何語ですか?

2023-10-16 19:27:02

質問

Nginxの設定ファイルにもっと複雑な条件を書きたいのですが、構文がよくわからず、サンプルにある基本的なこと以上に何ができるかを説明したドキュメントも見つからず、Nginxのフォーラムやメーリングリストにもないようです。

例えば、私が unless という条件は可能でしょうか?

どのように解決するのですか?

私は nginx の初心者で、これと同じ疑問を持っていました。上記のような言語のシンタックスは、カスタムでありながら、実はとてもシンプルであることが判明しました。その構文とは セクションで捕捉される であり、便宜上ここで繰り返しています。

nginx は、設定ファイルに指定されたディレクティブによって制御されるモジュールで構成されています。 で指定されたディレクティブによって制御されるモジュールで構成されています。ディレクティブは以下のように分類されます。 ディレクティブは単純なディレクティブとブロックディレクティブに分けられます。単純なディレクティブは次のような構成になっています。 名前とパラメータを空白で区切り、セミコロン (;) で終わります。 (;). ブロックディレクティブは、単純なディレクティブと同じ構造です。 ブロックディレクティブは、シンプルディレクティブと同じ構造ですが、セミコロンの代わりに、中括弧({と})で囲まれた一連の追加命令で終わります。 を中括弧({と})で囲みます。ブロック指令が中括弧の中に他の指令を持つことができる場合 ブロックディレクティブが中括弧の中に他のディレクティブを持つことができる場合、それはコンテキストと呼ばれます (例。 event, http, server, location など)。

コンテキスト以外の設定ファイルに書かれたディレクティブは、 メインコンテキストにあるとみなされます。 の外側に置かれたディレクティブは、 メインコンテキストにあるとみなされます。events と http ディレクティブはメインコンテキストに、server は http に、location は server に置かれます。

記号の後の残りの行はコメントとみなされます。

まとめると NGINXの設定ファイル内のすべてのものは ディレクティブです。 を参照することができます。 変数 . すべてのディレクティブは をアルファベット順に並べたものです。 で、すべての変数は であり,アルファベット順に . NGINX の設定は モジュール によって駆動され、それぞれが特定の機能の一部を実装しており、各モジュールは が貢献する ディレクティブと変数を提供し、それらは設定内で使用できるようになります。これだけです。

そのため if -- は、従来のプログラミング言語のようにキーワードのように見えますが、実は単なる ディレクティブ が寄与しています。 ngx_http_rewrite_module モジュール .

これが役に立つといいのですが!

PS - また、以下をチェックしてください。 https://devdocs.io/ を、そして特に https://devdocs.io/nginx のために 多く で、NGINXのドキュメントを検索・利用する方法が改善されています。