Я тестирую создание кэша в nginx и имею его работающий отлично в соответствии с обоими каталогами, которые я настроил кроме следующего: Когда я пытаюсь кэшировать php-сгенерированное изображение, оно просто действует как прокси к моему апачскому серверу, запускающему php скрипт формирования изображения. Это хорошо работает на любом статическом HTML, CSS, js, или текстовых файлах. Как я могу заставить nginx кэшировать php-сгенерированные изображения также? Я думаю, что что-то могло бы отсутствовать в моем поколении PHP, чтобы заставить nginx думать, что это - кэшируемый файл, но не уверенное, куда пойти отсюда.
Вот мой 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:
$img = imagecreatefromjpeg($full_image_path);
header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
Как я заставляю nginx кэшировать эти изображения также?
Мне тоже пришлось добавить свой ответ, две недели отлаживал (правда, к сожалению).
php-страниц (или других) с
setcookie ()
НЕ кэшируются по умолчанию в кеше / обратном прокси nginx.
У меня был файл cookie «login_return_url» на каждой странице с описанием (более 500 000), и я не понимал, почему сайт работает медленнее, получает все меньше и меньше трафика и посещений Google, несмотря на кеширование, которое, по-видимому, работало нормально.
И я в основном был авторизован (cookie возврата входа не требовался), поэтому я получил кешированные страницы, в то время как все остальные этого не сделали.
Спасибо, @muncherelli!