nginx proxy http reverso não armazenando em cache imagens geradas por php

1

Estou testando a criação de um cache no nginx e o trabalho muito bem em ambos os diretórios que configurei, exceto o seguinte: Quando tento armazenar em cache uma imagem gerada pelo php, ela simplesmente age como um proxy para meu servidor apache em execução o script de geração de imagem php. Ele funciona bem em qualquer arquivo estático de html, css, js ou texto. Como posso obter o nginx para armazenar em cache as imagens geradas por php também? Estou pensando que algo pode estar faltando na minha geração do PHP para fazer o nginx pensar que é um arquivo que pode ser armazenado em cache, mas não tenho certeza de onde ir a partir daqui.

Aqui está o meu nginx.conf:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
  proxy_cache_path  /var/www/cache/muncherelli/cdn levels=1:2 keys_zone=muncherelli:8m max_size=1000m inactive=600m;
  proxy_cache_path  /var/www/cache/mi/client/images levels=1:2 keys_zone=miclient:8m max_size=1000m inactive=600m;
  proxy_temp_path /var/www/cache/tmp;


  server {
    location /muncherelli/cdn/ {
      proxy_pass http://muncherelli.com/wp-content/;
      proxy_cache muncherelli;
      proxy_cache_valid  200 302  60m;
      proxy_cache_valid  404      1m;
    }

    location /mi/client/images/ {
      proxy_pass http://client.images.example.com/;
      proxy_cache miclient;
      proxy_cache_valid  200 302  60m;
      proxy_cache_valid  404      1m;
    }
  }

}

e a parte de criação de imagem do meu script php:

$img = imagecreatefromjpeg($full_image_path);

header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);

Como obtenho o nginx para armazenar essas imagens em cache também?

    
por muncherelli 06.07.2015 / 12:43

1 resposta

3

O mais provável é que algum cabeçalho extra esteja impedindo que o nginx armazene a resposta em cache.

    
por 06.07.2015 / 17:56

Tags