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

Bagaimana Nginx melaksanakan konfigurasi kawalan cache untuk permintaan HTTP

Nov 08, 2023 am 09:35 AM
nginx permintaan http Konfigurasi cache

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 Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah arahan untuk memulakan, menghentikan, atau memulakan semula nginx? Apakah arahan untuk memulakan, menghentikan, atau memulakan semula nginx? Jun 18, 2025 am 12:05 AM

Untuk memulakan, menghentikan atau memulakan semula Nginx, arahan khusus bergantung pada jenis sistem dan kaedah pemasangan. 1. Bagi sistem moden yang menggunakan SystemD (seperti Ubuntu16.04, Debian8, CentOS7), anda boleh menggunakan: sudosystemctlstartnginx, sudosystemctlstopnginx, sudosystemctlrestartnginx, dan menggunakan sudosystemctlreloadnginx selepas perubahan konfigurasi; 2. Untuk sistem lama yang menggunakan sysvinit, gunakan arahan perkhidmatan: sudoservicenginxstart,

Bagaimana membuat permintaan HTTP di node.js? Bagaimana membuat permintaan HTTP di node.js? Jul 13, 2025 am 02:18 AM

Terdapat tiga cara biasa untuk memulakan permintaan HTTP dalam node.js: Gunakan modul terbina dalam, axios, dan nod-fetch. 1. Gunakan modul HTTP/HTTPS terbina dalam tanpa kebergantungan, yang sesuai untuk senario asas, tetapi memerlukan pemprosesan manual jahitan data dan pemantauan ralat, seperti menggunakan https.get () untuk mendapatkan data atau menghantar permintaan pos melalui .write (); 2.AXIOS adalah perpustakaan pihak ketiga berdasarkan janji. Ia mempunyai sintaks ringkas dan fungsi yang kuat, menyokong async/menunggu, penukaran JSON automatik, pemintas, dan lain -lain. Adalah disyorkan untuk memudahkan operasi permintaan tak segerak; 3.Node-Fetch menyediakan gaya yang serupa dengan pengambilan penyemak imbas, berdasarkan janji dan sintaks mudah

Cara Menggunakan PHP untuk membangunkan Platform Komuniti Q & A Penjelasan terperinci mengenai model pengewangan komuniti interaktif PHP Cara Menggunakan PHP untuk membangunkan Platform Komuniti Q & A Penjelasan terperinci mengenai model pengewangan komuniti interaktif PHP Jul 23, 2025 pm 07:21 PM

1. 2. Prestasi tinggi memerlukan pergantungan pada cache (redis), pengoptimuman pangkalan data, CDN dan giliran tak segerak; 3. Keselamatan mesti dilakukan dengan penapisan input, perlindungan CSRF, HTTPS, penyulitan kata laluan dan kawalan kebenaran; 4. Pengiklanan pilihan wang, langganan ahli, ganjaran, komisen, pembayaran pengetahuan dan model lain, terasnya adalah untuk memadankan nada komuniti dan keperluan pengguna.

Apa yang menyebabkan kesilapan 'Terlalu Banyak Fail Terbuka' di Nginx? Apa yang menyebabkan kesilapan 'Terlalu Banyak Fail Terbuka' di Nginx? Jul 05, 2025 am 12:14 AM

Apabila Nginx mengalami kesilapan "toomyopenfiles", biasanya kerana sistem atau proses telah mencapai had deskriptor fail. Penyelesaian termasuk: 1. Meningkatkan had lembut dan keras sistem Linux, tetapkan parameter yang relevan Nginx atau menjalankan pengguna di /etc/security/limits.conf; 2. Laraskan nilai worker_connections nginx untuk menyesuaikan diri dengan trafik yang dijangkakan dan memastikan konfigurasi yang terlalu banyak; 3. Meningkatkan had atas deskriptor fail peringkat sistem fs.file-max, edit /etc/sysctl.conf dan gunakan perubahan; 4. Mengoptimumkan penggunaan log dan sumber, dan mengurangkan penggunaan pemegang fail yang tidak perlu, seperti menggunakan Open_L

Apakah suite SSL/TLS Cipher yang kuat untuk Nginx? Apakah suite SSL/TLS Cipher yang kuat untuk Nginx? Jun 19, 2025 am 12:03 AM

Astrongssl/tlsciphersuitefornginxbalancessecurity, keserasian, danperformancePrioritizingModernEncryptionalgorithmsandforw ardsecrecywhileavoidingdePrecatedProtocols.1.usetls1.2andtls1.3, melumpuhkan SableolderSecureVSionsLikesslv3andtls1.0/1.1viassl_pr

Bagaimana untuk mengaktifkan sokongan HTTP/2 atau HTTP/3 di Nginx? Bagaimana untuk mengaktifkan sokongan HTTP/2 atau HTTP/3 di Nginx? Jul 02, 2025 am 12:36 AM

Untuk membolehkan sokongan HTTP/2 atau HTTP/3 NGINX, prasyarat mesti dipenuhi dan dikonfigurasi dengan betul; Http/2 memerlukan nginx1.9.5, openssl1.0.2 dan persekitaran https; tambah --with-http_v2_module modul semasa konfigurasi, ubah suai pernyataan mendengar ke Listen443SSLHTTP2; dan membebankan perkhidmatan; HTTP/3 didasarkan pada modul Quic, dan pihak ketiga seperti Nginx-Quic diperlukan untuk memperkenalkan cawangan BoringsSL atau OpenSslquic semasa penyusunan, dan mengkonfigurasi port mendengar UDP; Masalah biasa semasa penempatan termasuk ALPN tidak didayakan, perakuan tidak serasi, sekatan firewall dan kesilapan kompilasi, disarankan untuk menggunakan keutamaan

Cara Membina Persekitaran PHP Nginx dengan MACOS Untuk mengkonfigurasi gabungan perkhidmatan nginx dan php Cara Membina Persekitaran PHP Nginx dengan MACOS Untuk mengkonfigurasi gabungan perkhidmatan nginx dan php Jul 25, 2025 pm 08:24 PM

Peranan utama homebrew dalam pembinaan persekitaran MAC adalah untuk memudahkan pemasangan dan pengurusan perisian. 1. Homebrew secara automatik mengendalikan kebergantungan dan merangkumi kompilasi kompleks dan proses pemasangan ke dalam arahan mudah; 2. Menyediakan ekosistem pakej perisian bersatu untuk memastikan penyeragaman lokasi pemasangan perisian dan konfigurasi; 3. Mengintegrasikan fungsi pengurusan perkhidmatan, dan dengan mudah boleh memulakan dan menghentikan perkhidmatan melalui brewservices; 4. Menaik taraf dan penyelenggaraan perisian yang mudah, dan meningkatkan keselamatan dan fungsi sistem.

Cara Membuat Permintaan HTTP Di Perjalanan Cara Membuat Permintaan HTTP Di Perjalanan Jul 14, 2025 am 02:48 AM

Kaedah memulakan permintaan HTTP di GO adalah seperti berikut: 1. Gunakan http.get () untuk memulakan permintaan GET yang paling mudah, ingat untuk mengendalikan kesilapan dan menutup badan; 2. Gunakan http.post () atau http.newRequest () untuk menghantar permintaan pos, dan anda boleh menetapkan data JSON atau membentuk data; 3. Tetapkan masa tamat, header dan cookies, tamat masa kawalan dan header.Set untuk menambah tajuk tersuai melalui pelanggan, dan gunakan Cookiejar untuk mengurus kuki secara automatik; 4. Nota termasuk perlu menutup badan, objek bukan semula, dan menetapkan pengguna-AG

See all articles