Estoy tratando de configurar nginx para que "static.domain.com" solo pueda servir imágenes. Esto es lo que se me ocurrió, pero sé que se puede hacer de manera más eficiente. Quiero servir 403.html si alguien intenta acceder a cualquier archivo .htm, .php, directorio (¿me falta algo más?). Por supuesto, con la excepción de los archivos 403.htm y static.htm.nginx - solo imágenes
¿Alguna idea de cómo puedo asegurar esto correctamente?
server {
listen xx.xx.xx.xx:80;
server_name static.domain.com;
root /www/domain.com/httpdocs;
index static.htm;
access_log off;
error_log /dev/null crit;
error_page 403 /403.html;
# Disable access to .htaccess or any other hidden file
location ~ /\.ht {
deny all;
}
location ~* \.php {
deny all;
}
# Serve static files directly from nginx
location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
}
¿Es así de simple? nada más se necesita? –
Debería ser, por supuesto, lo probaría para estar seguro ya que no he ejecutado lo que escribí allí. La ubicación ~ * \. (Jpg | jpeg | gif | png ...) coincide con todos los tipos enumerados allí separados con pipes, si no coincide con "/" porque "/" coincide con todo. –
Bien, esto no funcionará porque en FireFox, cualquier archivo .php al que se acceda le permite al usuario descargar el archivo (muestra el mensaje de solicitud de descarga). –