serve - Use nginx para servir archivos estáticos de subdirectorios de un directorio determinado
nginx location (1)
Debería funcionar, sin embargo http://nginx.org/en/docs/http/ngx_http_core_module.html#alias dice:
Cuando la ubicación coincide con la última parte del valor de la directiva: es mejor utilizar la directiva raíz en su lugar:
que rendiría:
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;
}
}
Tengo varios juegos de archivos .html
estáticos en mi servidor, y me gustaría utilizar nginx para que los sirva directamente. Por ejemplo, nginx debería servir un URI del siguiente patrón:
www.mysite.com/public/doc/foo/bar.html
con el archivo .html
que se encuentra en /home/www-data/mysite/public/doc/foo/bar.html
. Puedes pensar en foo
como el nombre del conjunto, y bar
como el nombre del archivo aquí.
Me pregunto si la siguiente pieza de configuración de nginx haría el trabajo:
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 otras palabras, todas las solicitudes del patrón /public/doc/.../....html
serán manejadas por nginx, y si no se encuentra un URI dado, se trata de un sitio predeterminado www.mysite.com/404.html
es devuelto