cari
RumahOperasi dan penyelenggaraanNginxBagaimana untuk mengkonfigurasi cache kandungan Nginx dan apakah konfigurasi parameter biasa?

Senario penggunaan:

Halaman projek perlu memuatkan banyak data, yang tidak kerap berubah Ia tidak melibatkan penyesuaian diperibadikan secara dinamik untuk setiap permintaan. dan prestasinya tidak baik. Cache keputusan berdasarkan laluan permintaan dan parameter Menggunakan cache nginx akan meningkatkan kelajuan permintaan.

Asas

Anda hanya perlu mengkonfigurasi laluan_cache_proksi dan cache_proksi untuk mendayakan cache kandungan yang pertama digunakan untuk menetapkan laluan cache dan konfigurasi, dan yang terakhir digunakan untuk membolehkan caching .

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

 server {
 proxy_cache mycache;
 location / {
  proxy_pass http://localhost:8000;
 }
 }
}

Perihalan parameter yang sepadan:

1 Direktori cakera tempatan yang digunakan untuk caching ialah /path/to/cache/

2. .levels menetapkan hierarki direktori dua peringkat di /path/to/cache/. Meletakkan sebilangan besar fail dalam satu direktori boleh mengakibatkan akses fail perlahan, jadi untuk kebanyakan penggunaan, kami mengesyorkan hierarki direktori dua peringkat. Jika parameter tahap tidak dikonfigurasikan, nginx akan meletakkan semua fail dalam direktori yang sama.

3.keys_zone Sediakan kawasan memori kongsi, yang digunakan untuk menyimpan kunci cache dan metadata, agak serupa dengan penggunaan pemasa. Meletakkan salinan kunci ke dalam ingatan membolehkan nginx membuat keputusan dengan cepat sama ada permintaan adalah hit atau terlepas tanpa mendapatkan semula cakera, yang sangat meningkatkan kelajuan mendapatkan semula. Ruang memori 1MB boleh menyimpan kira-kira 8,000 kekunci, jadi ruang memori 10MB yang dikonfigurasikan di atas boleh menyimpan hampir 80,000 kekunci.

4.max_size menetapkan had atas cache (10g dalam contoh di atas). Ini adalah pilihan; tidak menyatakan nilai membolehkan cache berkembang dan menggunakan semua ruang cakera yang tersedia. Apabila cache mencapai had ini, pemproses memanggil pengurus cache untuk mengalih keluar fail yang paling kurang digunakan baru-baru ini, sekali gus mengurangkan ruang cache ke bawah had ini.

5.tidak aktif menyatakan berapa lama item boleh kekal dalam ingatan tanpa diakses. Dalam contoh di atas, jika fail tidak diminta dalam masa 60 minit, pengurusan cache akan memadamkannya secara automatik daripada memori, tidak kira sama ada fail itu telah tamat tempoh. Nilai lalai parameter ini ialah 10 minit (10m). Ambil perhatian bahawa kandungan tidak aktif adalah berbeza daripada kandungan tamat tempoh. nginx tidak akan memadamkan kandungan tamat tempoh secara automatik yang ditentukan oleh pengepala kawalan cache (cache-control:max-age=120 dalam contoh ini). Kandungan tamat tempoh hanya akan dipadamkan jika ia tidak diakses dalam masa yang ditentukan oleh tidak aktif. Jika kandungan tamat tempoh diakses, nginx akan menyegarkannya daripada pelayan asal dan mengemas kini pemasa tidak aktif yang sepadan.

6.nginx pada mulanya akan meletakkan fail yang ditakdirkan untuk ditulis ke cache ke dalam kawasan storan sementara Perintah use_temp_path=off mengarahkan nginx untuk menulis fail ini ke direktori yang sama apabila menyimpannya. Kami amat mengesyorkan anda menetapkan parameter kepada off untuk mengelakkan salinan data yang tidak diperlukan dalam sistem fail. use_temp_path telah diperkenalkan dalam versi nginx1.7 dan nginx plus r6.

Akhirnya, arahan proxy_cache mula menyimpan cache kandungan yang urlnya sepadan dengan bahagian lokasi (dalam kes ini, /). Anda juga boleh menambah perintah proxy_cache pada bahagian pelayan, yang akan menggunakan caching pada semua perkhidmatan yang lokasinya tidak menyatakan perintah proxy_cache mereka sendiri.

proses berkaitan cache nginx

Terdapat dua proses nginx tambahan yang terlibat dalam cache:

  • pengurus cache Bermula secara berkala untuk menyemak status cache. Jika saiz cache melebihi had yang ditetapkan oleh parameter max_size dalam proxy_cache_path, pengurus cache memadamkan data yang diakses baru-baru ini. Di antara pengurus cache bermula, jumlah data cache mungkin melebihi saiz yang dikonfigurasikan secara ringkas.

  • pemuat cache hanya berjalan sekali, selepas nginx bermula. Ia memuatkan metadata tentang data yang dicache sebelum ini ke dalam kawasan memori yang dikongsi. Memuatkan keseluruhan cache sekali gus mungkin menggunakan sumber yang mencukupi untuk merendahkan prestasi nginx dalam beberapa minit pertama selepas permulaan. Untuk mengelakkan ini, konfigurasikan pemuatan berulang cache dengan memasukkan parameter berikut dalam arahan proxy_cache_path:

    • loader_threshold - tempoh lelaran dalam milisaat (default Next 200)

    • loader_files - Bilangan maksimum item dimuatkan semasa satu lelaran (100 secara lalai)

    • loader_sleeps - Kelewatan antara lelaran , dalam milisaat (50 secara lalai)

Dalam contoh berikut, lelaran berlangsung selama 300 milisaat atau sehingga 200 item dimuatkan:

proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;

Parameter lain yang biasa digunakan

Contoh konfigurasi:

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

server {
 ...
 location / {
  proxy_cache my_cache;
  # proxy_cache_key "$host$request_uri$cookie_user";   proxy_cache_min_uses 3;
  proxy_cache_methods get head post;
  proxy_cache_valid 200 302 10m;
  proxy_cache_valid 404  1m;
  # proxy_cache_valid any 5m;   proxy_pass http://localhost:8000;
 }
}

Penerangan parameter sepadan:

  • proxy_cache_key Untuk menukar ciri permintaan yang digunakan semasa mengira kunci, tentukan kunci yang dicache. Ini tidak disyorkan. Contohnya adalah menggunakan nama domain, URL permintaan dan kuki pengguna sebagai kunci, yang bermaksud bahawa halaman akan dicache n kali untuk pengguna yang berbeza Dalam kebanyakan kes ini operasi tidak diperlukan.

  • proxy_cache_min_uses ialah bilangan minimum permintaan yang mesti menggunakan kunci yang sama sebelum respons dicache.

  • proxy_cache_methods 为指定要被缓存的请求方式的响应值,默认为 get 和 head,新增其他的需要一起列出来,如上示例所示。

  • proxy_cache_valid 为响应状态码的缓存时间,示例可以为每个状态码缓存指定时间,也可以使用 any 进行全部状态码的缓存。

清除缓存

需要提前加一个配置,用于标识使用 http purge 方法的请求并删除匹配的 url 对应的缓存。

1.在 http {} 上下文中创建新变量,例如 $purge_method, 他依赖于 $request_method 变量:

http {
 ...
 map $request_method $purge_method {
  purge 1;
  default 0;
 }
}

2.在 location {} 块中,已经配置缓存的前提下,引入 proxy_cache_purge 参数来指定清除缓存请求的条件。例如在上一步指定的 $request_method

server {
 listen  80;
 server_name www.example.com;

 location / {
  proxy_pass https://localhost:8002;
  proxy_cache mycache;

  proxy_cache_purge $purge_method;
 }
}

配置完并使之生效之后,就可以发送一条 purge 请求来让缓存失效了,例如:

curl -x purge -d – https://www.example.com/*

在该示例中,将清除具有公共 url 部分(由星号通配符指定)的资源。但这些缓存条目不会从缓存中完全删除:它们会保留在磁盘上,直到它们被视为不活动(由proxy_cache_path 中的 inactive参数决定)的时候才完全删除,或缓存清除器(由 proxy_cache_path 中的 purge 决定),或客户端尝试访问它们的时候。

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi cache kandungan Nginx dan apakah konfigurasi parameter biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
The Ultimate Showdown: Nginx vs ApacheThe Ultimate Showdown: Nginx vs ApacheApr 18, 2025 am 12:02 AM

Nginx sesuai untuk mengendalikan permintaan serentak yang tinggi, manakala Apache sesuai untuk senario di mana konfigurasi kompleks dan sambungan berfungsi diperlukan. 1.Nginx mengamalkan seni bina yang didorong oleh peristiwa, tidak menyekat, dan sesuai untuk persekitaran yang tinggi. 2. Apache mengamalkan model atau model benang untuk menyediakan ekosistem modul yang kaya yang sesuai untuk keperluan konfigurasi kompleks.

Nginx dalam tindakan: contoh dan aplikasi dunia nyataNginx dalam tindakan: contoh dan aplikasi dunia nyataApr 17, 2025 am 12:18 AM

Nginx boleh digunakan untuk meningkatkan prestasi laman web, keselamatan, dan skalabiliti. 1) Sebagai proksi terbalik dan pengimbang beban, Nginx dapat mengoptimumkan perkhidmatan back-end dan berkongsi lalu lintas. 2) Melalui seni bina yang didorong oleh peristiwa dan tak segerak, Nginx dengan cekap mengendalikan sambungan serentak yang tinggi. 3) Fail konfigurasi membenarkan definisi peraturan yang fleksibel, seperti perkhidmatan fail statik dan mengimbangi beban. 4) Cadangan pengoptimuman termasuk membolehkan pemampatan GZIP, menggunakan cache dan menala proses pekerja.

Unit Nginx: Menyokong bahasa pengaturcaraan yang berbezaUnit Nginx: Menyokong bahasa pengaturcaraan yang berbezaApr 16, 2025 am 12:15 AM

NginxUnit menyokong pelbagai bahasa pengaturcaraan dan dilaksanakan melalui reka bentuk modular. 1. Memuatkan Modul Bahasa: Muatkan modul yang sepadan mengikut fail konfigurasi. 2. Permulaan Permohonan: Jalankan kod aplikasi apabila bahasa panggilan berjalan. 3. Permintaan Pemprosesan: Teruskan permintaan kepada contoh permohonan. 4. Pulangan Respons: Kembalikan respons yang diproses kepada pelanggan.

Memilih antara nginx dan apache: sesuai untuk keperluan andaMemilih antara nginx dan apache: sesuai untuk keperluan andaApr 15, 2025 am 12:04 AM

Nginx dan Apache mempunyai kelebihan dan kekurangan mereka sendiri dan sesuai untuk senario yang berbeza. 1.Nginx sesuai untuk senario penggunaan sumber yang tinggi dan rendah. 2. Apache sesuai untuk senario di mana konfigurasi kompleks dan modul yang kaya diperlukan. Dengan membandingkan ciri teras mereka, perbezaan prestasi, dan amalan terbaik, anda boleh membantu anda memilih perisian pelayan yang paling sesuai dengan keperluan anda.

Cara Memulakan NginxCara Memulakan NginxApr 14, 2025 pm 01:06 PM

Soalan: Bagaimana untuk memulakan nginx? Jawapan: Pasang Nginx Startup Nginx Verification Nginx adalah nginx mula meneroka pilihan permulaan lain secara automatik Mula nginx

Cara memeriksa sama ada nginx dimulakanCara memeriksa sama ada nginx dimulakanApr 14, 2025 pm 01:03 PM

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Cara menutup nginxCara menutup nginxApr 14, 2025 pm 01:00 PM

Untuk menutup perkhidmatan nginx, ikuti langkah -langkah berikut: Tentukan jenis pemasangan: Red Hat/CentOS (status SistemCTL nginx) atau debian/ubuntu (status nginx) menghentikan perkhidmatan: Red Hat/CentOS (SystemCtl Stop Nginx) atau Debian/Ubuntu (perkhidmatan Nginx) (Syst

Cara Mengkonfigurasi Nginx di WindowsCara Mengkonfigurasi Nginx di WindowsApr 14, 2025 pm 12:57 PM

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

See all articles

Alat AI Hot

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.