nginx設定の「サーバー」のカスタム変数は解決されません。

nginx設定の「サーバー」のカスタム変数は解決されません。

私はnginxを実行します。私のウェブサイトの1つの「サーバー」セクションには次のものがあります。

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  set $app_name myapp;
  set $app_port 4000;

  ssl_certificate /etc/letsencrypt/live/$app_name.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/$app_name.com/privkey.pem;


  access_log /var/log/nginx/$app_name.com.access.log;
  error_log /var/log/nginx/$app_name.com.error.log;

  #.............

カスタム変数の1つ以上は確認されません。app_nameたとえば、ファイルが生成されます。/var/log/nginx/$app_name.com.access.log

つまり、$アプリケーション名内部に。

したがって、使用されている構成ファイルの他のすべての場所では解決されません。

「error.log」で変数値が空であることがわかります。

なぜできないの?どうすれば修正できますか?

ベストアンサー1

どういうわけか動作させても、この方法を使用しないでください。

ファイルパスには変数(0.7.6+)を含めることができますが、これらのログにはいくつかの制限があります。

  • ワーカープロセスで資格情報を使用するユーザーは、そのログを含むディレクトリにファイルを作成する権限が必要です。
  • バッファリングされた書き込みは機能しません。
  • ログが書き込まれるたびにファイルが開いて閉じます。ただし、頻繁に使用されるファイルの説明はキャッシュに格納される可能性があるため、open_log_file_cacheディレクティブの有効な引数で指定された時間だけ古いファイルへの書き込みが続行される可能性があります。
  • [..]

そしてerror_log変数をまったく受け入れないようです。

設定を作成するには、テンプレート/マクロ言語を使用することをお勧めします(私はm4を好みます。参考資料を参照man m4)。

おすすめ記事