Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk mengkonfigurasi cache halaman nginx

Bagaimana untuk mengkonfigurasi cache halaman nginx

WBOY
WBOYke hadapan
2023-05-30 19:13:302952semak imbas

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

Tetapkan masa cache yang berbeza untuk respons yang berbeza, contohnya:

proxy_cache_valid 200 302 10m;
proxy_cache_valid 404   1m;

Tetapkan masa cache kepada 10 minit untuk kod respons 200 dan 302, 404 kod Cache selama 1 minit


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;

4. Muat semula fail

[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)


Perhatikan, apabila anda menggunakan Google Chrome untuk menguji, anda boleh Tekan f12 untuk memanggil alat pembangunan dan memilih pilihan rangkaian Kita boleh melihat tajuk respons Di sini kita boleh melihat sama ada kita meminta cache, tetapi kita tidak dapat melihatnya lagi mengujinya sekali lagi. panggilan, jika anda ingin memintas Panggilan Sistem, anda mesti menentukan alamat dalam mendengar dan menggunakan parameter bind.


$upstream_cache_status


Dalam versi 0.8.3 nilainya mungkin:

rindu Miss


tamat tempoh - tamat tempoh. Permintaan dihantar ke bahagian belakang.

Bagaimana untuk mengkonfigurasi cache halaman nginx

kemas kini - tamat tempoh. Oleh kerana proksi/fastcgi_cache_use_stale sedang dikemas kini, versi respons yang lebih lama akan digunakan.


basi - tamat tempoh. Apabila menggunakan proksi/fastcgi_cache_use_stale, bahagian belakang menerima respons lapuk.


tekan tekan


[root@nginx ~]# mkdir -pv /data/nginx/cache/webserver

7 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:                      [确定]

8

注,从图中我们可以看到,我们访问的服务器是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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam