Nginx:将静态文件从给定目录中提供-太深


13

我对nginx配置很陌生。我在遇到一个非常基本的问题时遇到了一些困难。我想在/ doc托管一些静态文件(index.html,一些图像等)。这些文件位于一个名为/ sites / mysite / proj / doc /的目录中。

问题是,使用下面的nginx配置,nginx会尝试查找名为“ / sites / mysite / proj / doc / doc”的目录。也许可以通过将根目录设置为/ sites / mysite / proj /来解决此问题,但是我不想潜在地暴露proj /目录中的其他(非静态)资产。由于种种原因,我无法真正将doc /目录从原来的位置移动。

我认为有一种方法可以使用重写规则来解决这种情况,但是我并不真正理解所有部分,因此在制定规则时遇到了一些困难。

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"

有人对我如何提供此静态内容有任何想法吗?

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.