J'ai plusieurs ensembles de fichiers statiques .html
Sur mon serveur et j'aimerais utiliser nginx pour les servir directement. Par exemple, nginx devrait servir un URI du modèle suivant:
www.mysite.com/public/doc/foo/bar.html
avec le fichier .html
situé à /home/www-data/mysite/public/doc/foo/bar.html
. Vous pouvez penser à foo
en tant que nom du jeu et à bar
en tant que nom de fichier ici.
Je me demande si le morceau suivant de nginx config ferait l'affaire:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
alias /home/www-data/mysite/public/doc/;
}
location = /404.html {
alias /home/www-data/mysite/static/html/404.html;
}
}
En d'autres termes, toutes les demandes du modèle /public/doc/.../....html
Vont être traitées par nginx, et si un URI donné n'est pas trouvé, un défaut www.mysite.com/404.html
Est renvoyé.
Cela devrait cependant fonctionner http://nginx.org/en/docs/http/ngx_http_core_module.html#alias dit:
Lorsque location correspond à la dernière partie de la valeur de la directive: il est préférable d’utiliser la directive racine:
qui donnerait:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
root /home/www-data/mysite;
}
location = /404.html {
root /home/www-data/mysite/static/html;
}
}