Tengo varios conjuntos de archivos estáticos .html
en mi servidor, y me gustaría usar nginx para que los sirva directamente. Por ejemplo, nginx debe servir a una URI de la siguiente distribución:Use nginx para servir archivos estáticos de subdirectorios de un directorio determinado
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
. Puede pensar en foo
como el nombre del conjunto y bar
como el nombre del archivo aquí.
Me pregunto si el siguiente fragmento de configuración 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
van a ser manejados por nginx, y si cualquier URI dado no es encontrado, se devuelve un valor predeterminado www.mysite.com/404.html
.
gracias por la sugerencia! una pregunta, ¿necesito usar expresiones regulares como '^ (/ public/doc /)' aquí? O '/ public/doc /' está bien? – MLister
just/public/doc/es suficiente en este caso, y en realidad un poco mejor ya que no tiene la (pequeña) carga adicional de la correspondencia de expresiones regulares – cobaco