Nginx sirve archivos en una ubicación específica desde una carpeta específica.
Quiero que NGINX sirva archivos desde una ubicación
dentro de un servidor
.
Como ejemplo, me gustaría que la URL http://dominio/ss/image.png sirviera el archivo ubicado dentro de /home/data/screenshots/image.png
Hasta ahora, he intentado usar una expresión regular de esta manera:
conf
location ~ ^/ss/(.*) {
root /home/data/screenshots;
add_header content-type "image/png";
try_files $1 /$1;
}
sin embargo, parece que esta ubicación nunca se alcanza, ya que es manejada por la ubicación especificada en /
(que en mi caso es una redirección).
No soy flexible con renombrar / cambiar la estructura de archivos del proyecto y quiero lograr este resultado solo con la modificación de configuración de NGINX.
davy.ai
Para servir archivos desde una
ubicación
dentro de unservidor
, se puede utilizar el siguiente bloque de configuración NGINX:Explicación de la configuración:
listen
especifica el puerto en el que escuchar.server_name
especifica el nombre del servidor a coincidir.location
especifica la ruta URL a coincidir.alias
especifica el sistema de archivos ruta para servir archivos desde.add_header
agrega un encabezado de respuesta.try_files
intenta servir el archivo solicitado, o devuelve un 404 si no se puede encontrar.Al establecer la
location
en/ss
, se pueden coincidir URLs comohttp://domain/ss/image.png`. La directiva
aliasespecifica la ruta del directorio para servir los archivos desde ella. La directiva
add_headeragrega el encabezado
Content-Typea la respuesta, estableciéndolo en
image/pngen este caso. La directiva
try_files` intenta servir el archivo solicitado, cayendo en un error 404 si el archivo no se encuentra.Con esta configuración, NGINX debería poder servir archivos desde la ubicación especificada dentro del servidor.