Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk mengkonfigurasi cache halaman nginx
cache halaman nginx
1 Perihalan arahan
proxy_cache_path
Sintaks: laluan proxy_cache_path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
Nilai lalai: tiada
Gunakan medan : Arahan http
menentukan laluan cache dan beberapa parameter lain Data cache disimpan dalam fail, dan nilai cincang url proksi digunakan sebagai kunci dan nama fail. Parameter tahap menentukan bilangan subdirektori yang dicache, contohnya:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
Nama fail adalah serupa dengan:
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
levels menentukan struktur direktori Anda boleh menggunakan mana-mana nombor 1 atau 2 digit sebagai struktur direktori, seperti x, x:x, atau x:x:x Contohnya: "2", "2:2", "1:1:2", tetapi ia hanya boleh menjadi direktori peringkat ketiga di kebanyakannya.
Semua kunci aktif dan metadata disimpan dalam kumpulan memori kongsi Kawasan ini ditentukan dengan parameter keys_zone. Satu merujuk kepada nama kolam kongsi, dan 10m merujuk kepada saiz kolam kongsi.
Perhatikan bahawa setiap kumpulan memori yang ditentukan mesti mempunyai laluan yang unik, contohnya:
proxy_cache_path /data/nginx/cache/one levels=1 keys_zone=one:10m; proxy_cache_path /data/nginx/cache/two levels=2:2 keys_zone=two:100m; proxy_cache_path /data/nginx/cache/three levels=1:1:2 keys_zone=three:1000m;
Jika data cache tidak diminta dalam masa yang ditentukan oleh parameter tidak aktif, ia akan menjadi dipadamkan lalai tidak aktif ialah 10 minit. Proses yang dipanggil pengurus cache mengawal saiz cache cakera Ia digunakan untuk memadam cache tidak aktif dan mengawal saiz cache Ini ditakrifkan dalam parameter max_size Apabila nilai cache semasa melebihi nilai yang ditentukan oleh max_size . Data terakhir yang paling kurang digunakan (algoritma penggantian LRU) akan dipadamkan. Saiz kumpulan memori ditetapkan mengikut perkadaran dengan bilangan halaman cache Saiz metadata halaman (fail) ditentukan oleh sistem pengendalian Sebagai contoh, ia adalah 64 bait di bawah freebsd/i386 dan 128 bait di bawah freebsd/. amd64.
proxy_cache
Sintaks: proxy_cache zone_name;
Nilai lalai: tiada
Gunakan medan: http, pelayan, lokasi
Tetapkan nama kawasan cache Kawasan yang sama boleh digunakan di tempat yang berbeza.
Selepas 0.7.48, cache mengikuti medan pengepala "tamat tempoh", "cache-control: no-cache", "cache-control: max-age=xxx" bahagian belakang, 0.7 . Selepas versi 66, pengepala "cache-control: "private" dan "no-store" juga diikuti. nginx tidak akan memproses pengepala "vary" semasa proses caching. Untuk memastikan bahawa sesetengah data peribadi tidak dilihat oleh semua pengguna, kemudian Pelanggan mesti menetapkan pengepala "no-cache" atau "max-age=0", atau proxy_cache_key mengandungi data yang ditentukan pengguna seperti $cookie_xxx Menggunakan nilai cookie sebagai sebahagian daripada proxy_cache_key boleh menghalang data peribadi daripada dicache, jadi ia boleh digunakan di lokasi yang berbeza. Tentukan nilai proxy_cache_key secara berasingan untuk memisahkan data peribadi dan data awam
Arahan caching bergantung pada penimbal proksi , cache tidak akan berkuat kuasa 🎜>proxy_cache_valid
Sintaks: proxy_cache_valid reply_code [reply_code …] time; >Gunakan medan: http, pelayan, lokasi
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
Jika anda hanya menentukan masa:
proxy_cache_valid 5m;
maka hanya respons dengan kod 200, 301 dan 302 akan dicache Begitu juga
proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m;
[root@nginx ~]# vim /etc/nginx/nginx.conf proxy_cache_path /data/nginx/cache/webserver levels=1:2 keys_zone=webserver:20m max_size=1g; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://webservers; proxy_set_header x-real-ip $remote_addr; proxy_cache webserver; proxy_cache_valid 200 10m; } }
5. Mari kita uji (Google Chrome)
tamat tempoh - tamat tempoh. Permintaan dihantar ke bahagian belakang.
basi - tamat tempoh. Apabila menggunakan proksi/fastcgi_cache_use_stale, bahagian belakang menerima respons lapuk.
tekan tekan
[root@nginx ~]# mkdir -pv /data/nginx/cache/webserver7 Muat semula fail konfigurasi
[root@nginx webserver]# service nginx reload nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 重新载入 nginx: [确定]
注,从图中我们可以看到,我们访问的服务器是192.168.18.208,缓存命中。大家可以看到是不是很直观啊。下面我们看一下缓存目录。
9.查看一下缓存目录
[root@nginx ~]# cd /data/nginx/cache/webserver/f/63/ [root@nginx 63]# ls 681ad4c77694b65d61c9985553a2763f
注,缓存目录里确实有缓存文件。
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi cache halaman nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!