nginx + fastcgi_cache เทพจริง ยกนิ้วให้ !!

nginx + fastcgi_cache เทพจริง ยกนิ้วให้ !!

ปกติถ้าเราลงตัว nginx ให้ทำงานเป็น web server แทน apache ใน ubuntu แล้ว
ตัว nginx สามารถใช้งานกับ module fast_cgi ที่จะทำหน้าที่เป็น caching ในตัวได้ครับ
แต่ต้องเปิดการใช้งานเพิ่ม โดยเริ่มแรกเข้าไป เพิ่มที่

#cd /etc/nginx/
#mkdir cache
#cd site-enable
#vi packetlove.com

ทำการเพิ่ม 2 บันทัดนี้ลงไปเพื่อเปิดใช้งาน fastcgi_cache ในบันทัดบนสุดของ configure และไม่ให้อยู่ใน server {}

fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m;
fastcgi_cache_key “$scheme$request_method$host$request_uri”;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

หลังจากนั้นเพิ่ม configure นี้เพื่อให้ PHP ส่งค่าไปยัง php5-fpm ลงในส่วนของ “location ~ .php$ { }”

fastcgi_cache MYAPP;
fastcgi_cache_valid 200 60m;

check configure ว่าถูกต้องหรือไม่
#service nginx configtest
หรือ
#nginx -t

ถ้า OK แล้วก็ restart nginx 1 รอบครับ
#service nginx reload

หน้าตาจะเป็นประมาณนี้ครับ
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m;
fastcgi_cache_key “$scheme$request_method$host$request_uri”;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

server {
listen 80;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name example.com;

location / {
try_files $uri $uri/ /index.html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_cache MYAPP;
fastcgi_cache_valid 200 60m;
}
}

หลังจากนั้นตรวจสอบว่า cache ถูกสร้างไว้ที่ /etc/nginx/cache หรือเปล่า ก็จะเห็นว่ามี folder ที่มี character 1 ตัว ถูกสร้างขึ้น
#cd /etc/nginx/cache
#ls -lahR | more
e
1e
เนื่องจากกำหนด levels=1:2

#reference
https://www.digitalocean.com/community/tutorials/how-to-setup-fastcgi-caching-with-nginx-on-your-vps

fastcgi_cache with conditional purging


http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_path

Add A Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です