Nginx:特定のディレクトリから静的ファイルを提供する-1レベルが深すぎる


13

私はnginxの設定がかなり新しいです。私はかなり基本的な問題に多少の困難を抱えています。/ docでいくつかの静的ファイル(index.html、いくつかの画像など)をホストしたいと思います。ファイルは/ sites / mysite / proj / doc /というディレクトリにあります。

問題は、nginxの以下の設定で、nginxが「/ sites / mysite / proj / doc / doc」というディレクトリを検索しようとすることです。おそらくこれは、ルートを/ sites / mysite / proj /に設定することで修正できますが、proj /ディレクトリ内の他の(非静的)アセットを潜在的に公開したくありません。また、さまざまな理由から、doc /ディレクトリを実際の場所から移動することはできません。

Rewriteルールを使用してこの状況を解決する方法はあると思いますが、すべての部分を本当に理解していないため、ルールの定式化に多少の困難があります。

rewrite ^/doc/(.*)$ /$1 permanent;

また、/ sites / mysite / htdocs / static /ディレクトリからファイルをホストする実際の例を含めました。

> vim locations.conf

location /static {
    root   /sites/mysite/htdocs/;
    access_log   off;
    autoindex  on;
}

location /doc {
    root   /sites/mysite/proj/doc/;
    access_log   on;
    autoindex  on;
}


2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"

この静的コンテンツを提供する方法について、誰にもアイデアはありますか?

回答:


20

次のようにエイリアスを使用できます。

location /doc {
    alias   /sites/mysite/proj/doc/;
}

http://wiki.nginx.org/HttpCoreModule#alias


1
root参照したドキュメントに従って、代わりに使用することをお勧めします(「場所がディレクティブの値の最後の部分に一致する場合」を参照)
ラファエルザビエル

更新されたドキュメントリンクnginx.org/en/docs/http/ngx_http_core_module.html#alias
LucScu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.