ACTUALIZACIÓN: Parece que el problema principal con las imágenes que no se cargan proviene de la forma en que el complemento / extensión HTTPS Everywhere del EFF manejó algunas URL de Tumblr. Se notificó a los desarrolladores y parece haber una solución . Esta respuesta básicamente desglosa el trabajo de detective realizado para descubrir el problema como se describe en la pregunta inicial y podría resultar útil para una mayor depuración / diagnóstico si aparece un problema similar en el futuro.
EDITAR: El contenido más grande sobre la sangría de imágenes parece no válido. Por lo tanto, agregará una nueva idea en la parte superior y dejará la información de la imagen en la parte inferior en caso de que sea útil para alguien.
Ideas de Amazon CloudFront CDN
De acuerdo, usando las URL que ha proporcionado, así como parte de mi experiencia en el mundo real con las configuraciones de CDN de Amazon CloudFront, creo que descubrí algo. Parece que la configuración CDN de Amazon CloudFront de Tumblr se está ahogando por alguna razón. Aquí es por qué creo que ese es el caso.
Tomemos este ejemplo de URL:
http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
Ahora corramos curl -I
para obtener información de encabezado en ese archivo:
curl -I http://36.media.tumblr.com/d685b02fdf2d3f167c22d9a97e27e87a/tumblr_nfpq5qPZ4v1tognpro1_1280.png
La salida para eso sería algo como esto:
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 782141
Connection: keep-alive
Accept-Ranges: bytes
Cache-Control: max-age=1209600
Date: Thu, 05 Mar 2015 02:15:44 GMT
Server: nginx
X-Cache: Miss from cloudfront
Via: 1.1 7e54fc06cd70e4752fe050bbe5c130be.cloudfront.net (CloudFront)
X-Amz-Cf-Id: QyIUyzfaJJN3PU_xWkW0P-D2kjg_1cVenKzFAoY2PubgZQlBHWorZQ==
Ahora, lo que hay que prestar atención aquí son los encabezados Date
(la fecha y hora del archivo en el punto final de CloudFront) y X-Cache
(estado de entrega de contenido de Amazon). El comportamiento típico en Amazon CloudFront es que el primer acceso transmitirá un "Miss desde el frente de la nube" y luego, si hace otro de curl -I
inmediato, debería haber un Hit from cloudfront
.
Pero eso no es lo que vi hace un momento. Aquí hay un desglose del estado Date
y X-Cache
de un montón de accesos que hice:
Date: Thu, 05 Mar 2015 02:19:37 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:39 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:44 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Miss from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
Date: Thu, 05 Mar 2015 02:19:50 GMT
= X-Cache: Hit from cloudfront
La razón por la que hay varios elementos con los mismos datos exactos que están Hit from cloudfront
cerca del final es porque eso es lo que sucede en una CDN: si el punto final de la CDN tiene el archivo, entonces se Date
correlaciona con la fecha real de creación / modificación del archivo que punto final tiene.
Te das cuenta de que los primeros cuatro accesos están separados por segundos, con diferentes fechas / horas y todos ellos Miss from cloudfront
, ¿verdad? Eso significa que el punto final de CDN solo está repitiendo que hubo un intento de acceder a ese archivo en esos momentos y que todos los intentos fueron fallidos.
Entonces, mi evaluación de esto es que los sistemas de Tumblr no están al día con Amazon CloudFront CDN o que Amazon CloudFront CDN no está al día con Tumblr. Pero de alguna manera, las cosas están mal en su lado del servidor. Y dado que se trata de un CDN, alguien que acceda a los archivos en una ubicación podría no notar un problema, mientras que otra persona en otra ubicación tendría problemas para ver la imagen.
Lo cual es todo para decir, no creo que esto pueda aclararse fácilmente en el lado del cliente.
EDITAR: Entonces, el póster original agregó algunas URL nuevas, y esto todavía apunta a un problema del lado del servidor, pero solo quería publicar los detalles para el registro.
Ideas de CDN de EdgeCast & Highwinds
Entonces, el póster original agregó más detalles, así que aquí hay más detalles basados en la publicación del blog que se está utilizando como ejemplo:
http://claystorks.tumblr.com/post/112741831192/soulmister-claystorks-windspeare-explain
Y estas URL de imágenes se proporcionan como ejemplos de URL en esa publicación:
https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png
https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png
Y esas dos URL de imágenes realmente fallan. Pero desde mi lado, mirando el código original de la publicación del blog de Brooklyn, Nueva York, EE. UU., No veo esas gs1.wac.edgecastcdn.net
URL de EdgeCast ( ). Más bien, estas son las URL que estoy viendo:
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_500.png
http://41.media.tumblr.com/76493f424ebb3b62d6de43e53643180a/tumblr_nkps82DdCh1sjn35qo1_1280.png
Entonces, mi primer pensamiento es por qué el póster original está viendo esos EdgeCast ( gs1.wac.edgecastcdn.net
). Pero luego, si hago un traceroute al 41.media.tumblr.com
, veo que es un servidor administrado por Highwinds (!?!?). Por el contrario, las URL iniciales transmitidas por el usuario original utilizan el 36.media.tumblr.com
nombre de host y puede ver que son administradas por servidores CDN de Amazon CloudFront.
Lo cual es todo para decir, lo que dije antes, todo esto parece ser un problema del lado del servidor con Tumblr y su gestión de CDN. Pero desde mi lado, en Brooklyn, Nueva York, EE. UU., Veo claramente que el contenido se entrega como se espera de los servidores CDN de Highwinds, así como de los servidores CDN de Amazon CloudFront. De dónde provienen estas URL de EdgeCast o cómo / por qué están fallando está fuera del control de nadie en el lado del cliente. Esto definitivamente sería algo para contactar al personal técnico de Tumblr porque no hay forma de que un usuario final de escritorio pueda resolver esto.
Image Leeching Ideas
Puede que ya no sea relevante, pero aquí para referencia.
Afirmas esto, dame una pista:
El uso wget
de los enlaces directos de las imágenes funciona.
Muchos sitios tienen reglas establecidas, generalmente establecidas a través de Apache, que evitan la pérdida de imágenes. Aquí se proporcionan más detalles sobre cómo funcionan esas reglas y se resume así:
Con el uso de .htaccess, puede deshabilitar los enlaces activos en su servidor, por lo que aquellos que intentan enlazar a una imagen o archivo CSS en su sitio, por ejemplo, se bloquean (solicitud fallida, como una imagen rota) o se sirve un contenido diferente ( es decir: una imagen de un hombre enojado).
Según su descripción, y el hecho de que puede acceder a las imágenes a través de, wget
me lleva a creer que las imágenes con las que tiene problemas no están alojadas en Tumblr por los usuarios, sino más bien imágenes que se colocan en un blog de Tumblr pero en realidad se alojan en otro sitio.
Cuando se implementan los procedimientos estándar de imágenes sanguijuelas, ver una imagen incrustada en un sitio alojado en otro sitio, que bloquea las sanguijuelas, daría como resultado un enlace de imagen roto o tal vez un "¡Detener la sanguijuela!" imagen devuelta Esto se debe a que las reglas básicas anti-sanguijuelas, como las de esa página de ejemplo, verifican las referencias de imágenes para asegurarse de que la página que solicita la imagen coincida con el dominio que aloja la imagen.
Entonces, cuando está accediendo a la imagen a través de wget
, está accediendo a la imagen directamente. Por lo tanto, las reglas de sanguijuela de la imagen no entrarían en vigencia. Por lo tanto, puede obtener la imagen a través de, wget
pero no cuando está incrustada en otra página.