Nginx: servir des fichiers statiques hors d'un répertoire donné - un niveau trop profond

13

Je suis assez nouveau pour les configs nginx. J'ai des difficultés avec un problème assez basique. Je voudrais héberger des fichiers statiques dans / doc (index.html, quelques images, etc.). Les fichiers se trouvent dans un répertoire appelé / sites / mysite / proj / doc /.

Le problème est qu'avec la configuration nginx ci-dessous, nginx essaie de rechercher un répertoire appelé "/ sites / mysite / proj / doc / doc". Peut-être que cela peut être corrigé en définissant la racine sur / sites / mysite / proj /, mais je ne veux pas potentiellement exposer d'autres actifs (non statiques) dans le répertoire proj /. Et pour diverses raisons, je ne peux pas vraiment déplacer le répertoire doc / d'où il se trouve.

Je pense qu'il existe un moyen d'utiliser une règle de réécriture pour résoudre cette situation, mais je ne comprends pas vraiment toutes les parties, donc j'ai du mal à formuler la règle.

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

J'ai également inclus un exemple de travail d'hébergement de fichiers à partir d'un répertoire / 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"

Quelqu'un a-t-il des idées sur la façon dont je pourrais utiliser ce contenu statique?

Joe J
la source

Réponses: