나는 기본적인 작업의 Nginx + SSI의 예를 설정하기 위해 노력하고있어 : (간결함을 위해, 단지 관련 부분)Nginx의/SSI 독립적 인 조각 캐싱
Nginx에의 설정을 :
ssi on;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:20m max_size=20m inactive=60m use_temp_path=off;
server {
listen 80;
server_name localhost;
location/{
proxy_cache my_cache;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_buffering on;
proxy_pass http://127.0.0.1:81;
}
}
server {
listen 81;
root /path/to/root;
location ~ ^/.+\.php {
fastcgi_pass 127.0.0.1:9000;
}
}
ssi.php :
<?php
header('Cache-Control: public, s-maxage=5');
?>
Time: <?php echo time(); ?>
Fragment time: <!--# include virtual="/time.php" -->
time.php :
<?php
header('Cache-Control: no-cache');
echo time();
이
시간 : 1,466,710,388 조각 시간 : 1,466,710,388
지금, 두 번째 나중에 내가 페이지 (ssi.php을) 기대는 여전히 캐시 할 수 있지만, time.php
조각은멋지게 작품을 포함 신선합니다 :
그것은 완전히 SSI 페이지가 조각과 함께 업데이트 된 후 5 초에 동일하게 유지하지만 6,시간 : 1,466,710,388 조각 시간 : 1,466,710,389
:
시간 : 1,466,710,393 조각 시간 : 내가 전에 이런 짓을 한 1,466,710,393
ESI와 Varnish를 사용하고 SSI와 동일하게 작동 할 것으로 기대합니다. 내가 이것을 가정하는데 틀린가? 온라인으로 답변을 찾을 수 없으며 다른 캐시 제어 헤더를 실험 해 보았습니다. 그러나 이것이 올바른 방법임을 확신합니다. 내가 여기서 무엇을 놓치고 있니?
당신, 선생님! 나는 이것에 대해 포기했지만,'ssi on '지시어를 움직이는 것이 트릭을 만들었다.정말 고맙습니다. –