try_files serve index files cache nginx static-files

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