Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimana Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP

Bagaimana Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP

WBOY
WBOYasal
2023-11-08 09:35:231584semak imbas

Bagaimana Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP

Bagaimana Nginx melaksanakan konfigurasi kawalan cache permintaan HTTP

Nginx, sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, mempunyai kuasa pengurusan cache dan fungsi kawalan boleh merealisasikan kawalan cache permintaan HTTP melalui konfigurasi. Artikel ini akan memperkenalkan secara terperinci cara Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP dan memberikan contoh kod khusus.

1. Gambaran keseluruhan konfigurasi cache Nginx
Konfigurasi cache Nginx dilaksanakan terutamanya melalui modul proxy_cache, yang menyediakan banyak arahan dan parameter yang boleh mengawal tingkah laku cache dengan berkesan. Sebelum mengkonfigurasi cache, anda perlu memuatkan modul proxy_cache dalam fail konfigurasi Nginx Arahan khusus ialah:

load_module modules/ngx_http_proxy_module.so;

Arahan ini akan memuatkan modul proxy_cache Nginx supaya kami boleh menggunakan arahan kawalan Cache yang berkaitan. .

2. Penjelasan terperinci tentang arahan kawalan cache

  1. proxy_cache_path
#🎜🎜🎜#🎜🎜 digunakan untuk nyahhalusi cache_#path_cache_#path_cache konfigurasi berkaitan Parameter, seperti laluan storan cache, saiz cache, dasar cache, dsb. Penggunaan khusus adalah seperti berikut:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
               inactive=60m use_temp_path=off;

Dalam contoh ini, kami mentakrifkan kawasan cache bernama my_cache, laluan cache ialah /data/nginx/cache, saiz cache maksimum ialah 10GB dan tamat tempoh cache masa ialah 60 minit. Perlu diingatkan bahawa parameter konfigurasi perlu diselaraskan mengikut keperluan sebenar.

    proxy_cache
proxy_cache arahan digunakan untuk mendayakan caching dan menetapkan kawasan cache yang digunakan, yang boleh dikonfigurasikan dalam blok lokasi, contohnya : # 🎜🎜#
location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 304 5m;
    proxy_cache_valid 301 302 1h;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_background_update on;
    proxy_cache_lock on;
    proxy_cache_lock_timeout 5s;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 3;
    proxy_cache_bypass $http_x_token;
    proxy_cache_methods GET HEAD;
}

Dalam konfigurasi di atas, kami mendayakan kawasan cache bernama my_cache dan menetapkan masa kesahihan cache, kunci cache, strategi kemas kini cache dan parameter lain untuk kod status respons yang berbeza. Parameter ini boleh dikonfigurasikan secara fleksibel mengikut keperluan caching tertentu.

proxy_ignore_headers
  1. Arahan proxy_ignore_headers digunakan untuk menentukan pengepala respons HTTP yang Nginx perlu abaikan semasa # caching, sebagai contoh: #
    proxy_ignore_headers Cache-Control Set-Cookie;
    # 🎜🎜#Dalam contoh ini, kami meminta Nginx untuk mengabaikan pengepala respons Cache-Control dan Set-Cookie apabila melakukan caching untuk memastikan ketekalan dan kesahihan cache.

proxy_cache_lock

    Arahan proxy_cache_lock digunakan untuk mengawal akses serentak kepada kandungan cache, yang boleh mengelakkan kerosakan cache, avalanche dan masalah lain secara berkesan seperti: # 🎜🎜#
    proxy_cache_lock on;
    proxy_cache_lock_timeout 5s;
  1. Dalam contoh ini, kami mendayakan kunci cache dan menetapkan tamat masa selama 5 saat, selepas itu permintaan akan terus mengakses pelayan bahagian belakang untuk mengemas kini kandungan cache.
3. Contoh Kod

Berdasarkan arahan kawalan cache di atas, kami boleh menulis contoh konfigurasi Nginx yang lengkap untuk melaksanakan kawalan cache permintaan HTTP. Berikut ialah contoh konfigurasi Nginx yang mudah:

load_module modules/ngx_http_proxy_module.so;

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
               inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_cache my_cache;
            proxy_cache_valid 200 304 5m;
            proxy_cache_valid 301 302 1h;
            proxy_cache_key $host$uri$is_args$args;
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            proxy_cache_background_update on;
            proxy_cache_lock on;
            proxy_cache_lock_timeout 5s;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 3;
            proxy_cache_bypass $http_x_token;
            proxy_cache_methods GET HEAD;
            proxy_ignore_headers Cache-Control Set-Cookie;
        }
    }
}

Dalam contoh di atas, kami mula-mula memuatkan modul ngx_http_proxy_module, kemudian tentukan kawasan cache bernama my_cache, dan konfigurasikan lokasi proksi dalam blok pelayan, dengan caching dan arahan kawalan cache yang sepadan didayakan. Apabila pengguna mengakses example.com, Nginx akan melaksanakan pengurusan dan kawalan cache berdasarkan peraturan cache yang dikonfigurasikan.

4. Ringkasan
Melalui pengenalan dan contoh di atas, kami mempunyai pemahaman terperinci tentang cara Nginx melaksanakan konfigurasi kawalan cache permintaan HTTP, dan penjelasan terperinci serta demonstrasi arahan berkaitan yang disediakan oleh modul proxy_cache . Konfigurasi cache yang munasabah boleh meningkatkan kelajuan akses dan prestasi tapak web, mengurangkan tekanan pada pelayan bahagian belakang dan mencapai pengalaman pengguna yang lebih baik. Oleh itu, dalam pembangunan aplikasi web sebenar, adalah sangat penting untuk menggunakan fungsi kawalan cache Nginx dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn