我正在testing在nginx中创build一个caching,并让它在我设置的两个目录下工作得很好,除了以下内容:当我尝试caching一个php生成的图像时,它只是作为我的apache服务器的代理运行php图像 – 生成脚本。 它可以在任何静态html,css,js或文本文件上正常工作。 我怎样才能让nginxcachingphp生成的图像呢? 我在想我的PHP一代可能会失去一些东西,使nginx认为它是一个可caching的文件,但不知道从哪里去。
这是我的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; } } }
和我的PHP脚本的图像创build部分:
$img = imagecreatefromjpeg($full_image_path); header('Content-Type: image/jpeg'); imagejpeg($img); imagedestroy($img);
我怎样才能让nginx来caching这些图片呢?
最有可能的一些额外的头阻止nginxcaching响应。