try_files serve proxy_pass files html nginx alias

serve - cómo servir archivos html en nginx sin mostrar la extensión en esta configuración de alias



nginx try_files (2)

Aparentemente alias y try_files no funcionan juntos . Sin embargo, no creo que necesites usar alias.

location /mr { default_type "text/html"; try_files /fullpath/$uri /fullpath/$uri.html /fullpath/$uri/index.html /fullpath/index.html; }

Que probaría:

  • Archivo exacto
  • Archivo con .html agregado.
  • Índice en el camino.
  • Índice predeterminado.

Creo que la directiva raíz funciona con archivos try pero no puedo probar.

server{ location /mr { root /home/mysite/fullpath; default_type "text/html"; try_files $uri $uri.html $uri/index.html index.html; } }

Tengo muchos problemas para configurar este alias dentro de nginx para mostrar mi sitio web correctamente.

El sitio web que me interesa debe ser accesible desde mywebsite.com/mr y es diferente del sitio ubicado en mywebsite.com/ . El sitio web está ubicado en /fullpath (abreviado por simplicidad). El sitio necesita servir tres tipos de contenido:

  1. El archivo de índice ubicado en /fullpath/index.html .
  2. Otros archivos html (sin mostrar la extensión .html en el navegador).
  3. Activos estáticos (js / css / img) ubicados en /fullpath y subdirectorios.

Intenté cambiar el orden de las coincidencias en try_files y encontré situaciones en las que todas funcionaron, pero no al mismo tiempo:

location /mr { default_type "text/html"; alias /fullpath; # with this one 1 and 3 work # try_files $uri/index.html $uri.html $uri; # with this one 2 and 3 work # try_files $uri $uri.html $uri/index.html; # with this one 1 and 2 work try_files $uri.html $uri/index.html $uri; }

Cuando uno no funciona, es 404''s. ¿Alguien sabe cómo puedo servir todo tipo de archivos correctamente?


Usé un combo de lo que @Danack publicó lo que me llevó al resultado que estaba buscando (servir el archivo html directamente):

location /health-check { default_type "text/html"; alias /path/to/my/file.html; }