Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Perbincangan mendalam tentang mekanisme caching Nginx dan teknik penalaan prestasi

Perbincangan mendalam tentang mekanisme caching Nginx dan teknik penalaan prestasi

王林
王林asal
2023-08-26 21:46:45944semak imbas

Perbincangan mendalam tentang mekanisme caching Nginx dan teknik penalaan prestasi

Perbincangan mendalam tentang mekanisme caching Nginx dan teknik penalaan prestasi

Pengenalan:
Dalam pembangunan web hari ini, prestasi tinggi dan keselarasan tinggi adalah matlamat yang kami kejar. Sebagai pelayan web berprestasi tinggi, mekanisme caching Nginx dan kemahiran penalaan prestasi adalah penting untuk meningkatkan kapasiti muat laman web. Artikel ini akan menyelidiki mekanisme caching Nginx dan teknik penalaan prestasi, dan memberikan contoh kod yang berkaitan.

1. Mekanisme caching Nginx
Mekanisme caching Nginx dilaksanakan melalui modul cache proksi. Ia boleh cache data yang diproksi secara tempatan, dan apabila permintaan yang sama datang pada masa akan datang, data akan dibaca terus dari cache tanpa perlu menghantar permintaan ke pelayan bahagian belakang. Ini boleh mengurangkan tekanan pada pelayan bahagian belakang dan meningkatkan kelajuan tindak balas tapak web.

  1. Dayakan caching
    Untuk mendayakan fungsi caching Nginx, anda perlu menambah kod berikut pada fail konfigurasi Nginx terlebih dahulu:

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

    Dalam kod ini, proxy_cache_path mentakrifkan laluan cache dan beberapa parameter yang berkaitan . Antaranya, parameter levels mewakili tahap direktori yang dibuat dalam laluan cache, parameter keys_zone mentakrifkan kawasan memori kongsi yang digunakan untuk menyimpan indeks cache dan metadata berkaitan, max_size mentakrifkan saiz maksimum cache Parameter inactive menunjukkan bahawa cache yang tidak diakses untuk tempoh masa tertentu akan dianggap tamat tempoh use_temp_path Parameter menentukan sama ada Letakkan fail cache dalam laluan sementara. proxy_cache_path定义了缓存的路径和一些相关的参数。其中,levels参数表示在缓存路径中创建的目录层级,keys_zone参数定义了一个共享内存区域,用于存储缓存的索引和相关元数据,max_size参数定义了缓存的最大大小,inactive参数表示超过一定时间没有被访问的缓存将被认为是过期的,use_temp_path参数指定是否将缓存文件放在临时路径中。

  2. 配置缓存规则
    要指定哪些请求需要被缓存,可以在Nginx的配置文件中添加以下代码:

    http {
     ...
     location / {
         proxy_pass http://backend;
         proxy_cache my_cache;
         proxy_cache_valid 200 304 1h;
     }
     ...
    }

    在这段代码中,proxy_pass指令定义了要代理到的后端服务器地址,proxy_cache指定了使用的缓存区域,proxy_cache_valid定义了HTTP状态码200和304被缓存的时间。

  3. 刷新和清理缓存
    为了保证数据的实时性和准确性,我们有时需要手动刷新或清理缓存。可以在Nginx的配置文件中添加以下代码:

    http {
     ...
     location /flush_cache {
         internal;
         proxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
         return 200 "Cache flushed successfully";
     }
     ...
    }

    在这段代码中,location指定了刷新缓存的URL,internal指令限制了该请求只能被Nginx内部调用,proxy_cache_purge指令用于清理缓存。

二、Nginx的性能调优技巧
除了缓存机制之外,我们还可以通过一些性能调优的技巧来进一步提升Nginx的性能。

  1. 提高Worker进程的并发连接数
    Nginx默认配置的Worker进程数较少,可以通过修改配置文件来提高Worker进程的数量,从而提高并发连接数:

    worker_processes auto;
    events {
     worker_connections 4096;
    }

    在这段代码中,worker_processes指定了Worker进程的数量,events部分则指定了每个Worker进程的最大并发连接数。

  2. 配置TCP连接和超时参数
    合理配置TCP连接和超时参数可以提高Nginx的性能:

    http {
     ...
     keepalive_timeout 65;
     keepalive_requests 100;
     send_timeout 2m;
     client_header_timeout 1m;
     ...
    }

    在这段代码中,keepalive_timeout定义了一个客户端连接在没有任何请求的情况下保持活跃的最大时间,keepalive_requests定义了一个客户端连接请求的最大次数,send_timeout定义了向客户端发送响应的最长时间,client_header_timeout定义了接收客户端请求头的最长时间。

  3. 启用Gzip压缩
    启用Gzip压缩可以减小传输的数据量,提高页面加载速度:

    http {
     ...
     gzip on;
     gzip_disable "msie6";
     gzip_types text/plain text/css application/json;
     ...
    }

    在这段代码中,gzip指令启用了Gzip压缩,gzip_disable指定了不压缩msie6浏览器的请求,gzip_types

Konfigurasikan peraturan caching

Untuk menentukan permintaan yang perlu dicache, anda boleh menambah kod berikut pada fail konfigurasi Nginx:
rrreee

Dalam kod ini, arahan proxy_pass mentakrifkan proksi kepada Alamat pelayan bahagian belakang, proxy_cache menentukan kawasan cache yang digunakan dan proxy_cache_valid mentakrifkan masa apabila kod status HTTP 200 dan 304 dicache. 🎜🎜🎜🎜Segarkan dan kosongkan cache🎜Untuk memastikan masa nyata dan ketepatan data, kadangkala kami perlu memuat semula atau mengosongkan cache secara manual. Anda boleh menambah kod berikut pada fail konfigurasi Nginx: 🎜rrreee🎜Dalam kod ini, lokasi menentukan URL untuk memuat semula cache dan arahan dalaman mengehadkan permintaan kepada Dipanggil secara dalaman oleh Nginx, arahan proxy_cache_purge digunakan untuk membersihkan cache. 🎜🎜🎜🎜2. Teknik penalaan prestasi Nginx🎜Selain mekanisme caching, kami juga boleh menggunakan beberapa teknik penalaan prestasi untuk meningkatkan lagi prestasi Nginx. 🎜🎜🎜🎜Tingkatkan bilangan sambungan serentak proses Pekerja🎜Nginx mempunyai bilangan proses Pekerja yang lebih kecil yang dikonfigurasikan secara lalai Anda boleh menambah bilangan proses Pekerja dengan mengubah suai fail konfigurasi untuk menambah bilangan sambungan serentak: 🎜rreee. 🎜Dalam kod ini, worker_processes menentukan bilangan proses Worker dan bahagian events menentukan bilangan maksimum sambungan serentak untuk setiap proses Worker. 🎜🎜🎜🎜Konfigurasikan sambungan TCP dan parameter tamat masa 🎜 Konfigurasi sambungan TCP dan parameter tamat masa dengan betul boleh meningkatkan prestasi Nginx: 🎜rrreee🎜 Dalam kod ini, keepalive_timeout mentakrifkan sambungan pelanggan tanpa sebarang Masa maksimum untuk kekal aktif dalam kes permintaan, keepalive_requests mentakrifkan bilangan maksimum permintaan sambungan klien, send_timeout mentakrifkan masa maksimum untuk menghantar respons kepada klien, client_header_timeout mentakrifkan masa maksimum untuk menerima pengepala permintaan pelanggan. 🎜🎜🎜🎜Dayakan pemampatan Gzip🎜Mendayakan pemampatan Gzip boleh mengurangkan jumlah data yang dipindahkan dan meningkatkan kelajuan pemuatan halaman: 🎜rrreee🎜Dalam kod ini, arahan gzip membolehkan pemampatan Gzip, gzip /code> menyatakan bahawa permintaan penyemak imbas <code>msie6 tidak dimampatkan dan gzip_types menentukan jenis MIME yang memerlukan pemampatan Gzip. 🎜🎜🎜🎜Kesimpulan: 🎜Dengan meneroka secara mendalam mekanisme caching Nginx dan teknik penalaan prestasi, kami dapat memahami dan menggunakan Nginx dengan lebih baik, serta meningkatkan kapasiti muat tapak web dan pengalaman pengguna dengan lebih berkesan. Dengan mengkonfigurasi mekanisme caching dan parameter prestasi dengan betul, dan penalaan berdasarkan keadaan sebenar, kami boleh mencapai hasil yang lebih baik dalam pembangunan web berprestasi tinggi dan berkonkurensi tinggi. Saya harap artikel ini dapat memberi manfaat kepada pembaca. 🎜

Atas ialah kandungan terperinci Perbincangan mendalam tentang mekanisme caching Nginx dan teknik penalaan prestasi. 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