ルートの場所をサーバー{}ブロックの変数として参照する


11

私のnginxサーバー{}ブロックで、パスを使用してルートを定義しています。後でこのパスをどのように参照できますか?

これは私が達成しようとしていることです:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

残念ながら、$ rootを使用しても機能しません(私が定義していないため)。Nginxはルート値にアクセスする方法を提供しますか?

回答:


15

document_root変数が必要です。


これを行う:root / var / www / foosite / public /; $ document_root.ngaccessを含めます。「nginx:[emerg] open() "/etc/nginx/$document_root/.ngaccess" failed(2:No such file or directory)」というエラーが表示されます。$ document_rootはそれが解決策になるようですが、何か間違って入力しましたか?この投稿(および私が出会った他の人)forum.linode.com/viewtopic.php?t=7898によると、変数はincludeステートメントでは使用できません。これは、もし真実なら、残念です。
スカイラー、2012年

これは、nginxがinclude起動時にディレクティブを評価するだけで、すべてのリクエスト(これは理にかなっている)ではないことを意味します。
mgorven 2012年

1
ここでも問題が発生しました。「パスの値には、$ document_rootと$ realpath_root以外の変数を含めることができます。」nginx.org/en/docs/http/…–
エディタ、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.