Analisis cache proksi terbalik Nginx dan butiran pelaksanaan cache kandungan dinamik

王林
Lepaskan: 2023-08-25 15:33:38
asal
1336 orang telah melayarinya

Analisis cache proksi terbalik Nginx dan butiran pelaksanaan cache kandungan dinamik

Analisis butiran pelaksanaan cache proksi terbalik dan cache kandungan dinamik Nginx

Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik. Dalam aplikasi web sebenar, untuk meningkatkan kelajuan akses dan prestasi tapak web, selalunya perlu menggunakan caching proksi terbalik dan caching kandungan dinamik untuk mempercepatkan pemuatan dan tindak balas halaman web. Artikel ini akan menganalisis butiran pelaksanaan cache proksi terbalik Nginx dan cache kandungan dinamik secara terperinci, dan memberikan contoh kod yang sepadan.

1. Butiran pelaksanaan cache proksi terbalik

Cache proksi terbalik bermaksud bahawa sementara Nginx bertindak sebagai pelayan proksi terbalik, ia juga boleh menyimpan hasil tindak balas permintaan pelanggan dalam memori atau cakeranya sendiri untuk kali seterusnya Apabila meminta sumber yang sama , hasil cache dikembalikan terus, dengan itu meningkatkan kelajuan akses dan mengurangkan tekanan pada pelayan bahagian belakang.

  1. Dayakan cache proksi terbalik

Mula-mula anda perlu mendayakan fungsi cache proksi terbalik dalam fail konfigurasi Nginx. Maklumat konfigurasi berikut boleh ditambah dalam modul http:

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 {
        ...
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, proxy_cache_path menentukan laluan cache dan parameter yang berkaitan. Parameter levels menentukan struktur direktori cache, parameter keys_zone menentukan nama dan saiz cache, parameter max_size menentukan maksimum kapasiti cache, parameter < The code>inactive menentukan masa tamat tempoh cache dan parameter use_temp_path menentukan sama ada hendak menggunakan laluan sementara untuk caching. Dalam konfigurasi di atas, kami menggunakan cache bernama my_cache. proxy_cache_path指定了缓存的路径和相关参数。levels参数指定了缓存的目录结构,keys_zone参数指定了缓存的名称和大小,max_size参数指定了缓存的最大容量,inactive参数指定了缓存的过期时间,use_temp_path参数指定了是否使用临时路径进行缓存。在上述配置中,我们使用了名为my_cache的缓存。

  1. 配置反向代理缓存的规则

在Nginx的配置文件中,可以通过location指令来配置反向代理缓存的规则。例如,我们可以将指定的URL路径进行缓存,具体的配置如下所示:

server {
    ...
    
    location /cached {
        proxy_cache my_cache;
        proxy_cache_valid 200 304 10m;
        proxy_cache_use_stale error timeout invalid_header http_500;
        proxy_cache_background_update on;
        proxy_pass http://backend_server;
    }
}
Salin selepas log masuk

以上配置中,proxy_cache指定了使用哪个缓存,proxy_cache_valid指定了缓存的有效期,proxy_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,proxy_cache_background_update指定了是否后台更新缓存,proxy_pass指定了后端服务器的地址。

  1. 清除缓存

有时候需要手动清除缓存,可以使用proxy_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    bproxy_cache_purge my_cache "$scheme$request_method$host$request_uri";
}
Salin selepas log masuk

以上配置中,proxy_cache_purge指定了清除缓存的命令,并传递了缓存的名称和请求的URI。

二、动态内容缓存的实现细节

动态内容缓存是指Nginx在反向代理服务器的同时,也可以将动态生成的内容进行缓存,以减轻后端服务器的负载和提高响应速度。

  1. 启用动态内容缓存

首先需要在Nginx的配置文件中启用动态内容缓存的功能。在http模块内可以添加以下配置信息:

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

    server {
        ...
    }
}
Salin selepas log masuk

以上配置中,fastcgi_cache_path指定了缓存的路径和相关参数,与反向代理缓存的配置类似。同样,我们使用了名为my_cache的缓存。

  1. 配置动态内容缓存的规则

在Nginx的配置文件中,也可以通过location指令来配置动态内容缓存的规则。例如,我们可以将指定的URL路径的动态内容进行缓存,具体的配置如下所示:

server {
    ...
    
    location /dynamic {
        fastcgi_cache my_cache;
        fastcgi_cache_valid 200 10m;
        fastcgi_cache_methods GET HEAD;
        fastcgi_cache_use_stale error timeout invalid_header http_500;
        fastcgi_cache_lock on;
        fastcgi_cache_lock_timeout 5s;
        fastcgi_pass backend_server;
    }
}
Salin selepas log masuk

以上配置中,fastcgi_cache指定了使用哪个缓存,fastcgi_cache_valid指定了缓存的有效期,fastcgi_cache_methods指定了哪些HTTP方法会被缓存,fastcgi_cache_use_stale指定了当缓存过期时是否使用旧的缓存进行响应,fastcgi_cache_lock指定了是否启用缓存锁和锁的超时时间,fastcgi_pass指定了后端服务器的地址。

  1. 清除缓存

同样地,有时候需要手动清除缓存,可以使用fastcgi_cache_purge模块来实现。在Nginx的配置文件中,可以添加以下配置:

location /purge {
    fastcgi_cache_purge my_cache "$scheme$request_method$host$request_uri";
}
Salin selepas log masuk

以上配置中,fastcgi_cache_purge

    Konfigurasikan peraturan cache proksi terbalik

    🎜Dalam fail konfigurasi Nginx, anda boleh mengkonfigurasi peraturan cache proksi terbalik melalui arahan lokasi. Sebagai contoh, kita boleh cache laluan URL yang ditentukan Konfigurasi khusus adalah seperti berikut: 🎜rrreee🎜Dalam konfigurasi di atas, proxy_cache menentukan cache yang hendak digunakan dan proxy_cache_valid menentukan Tempoh sah cache, proxy_cache_use_stale menentukan sama ada untuk menggunakan cache lama untuk bertindak balas apabila cache tamat tempoh, proxy_cache_background_update menentukan sama ada untuk mengemas kini cache di latar belakang, proxy_pass menentukan alamat pelayan bahagian belakang. 🎜
      🎜Kosongkan cache🎜🎜🎜Kadangkala anda perlu mengosongkan cache secara manual, anda boleh menggunakan modul proxy_cache_purge untuk mencapainya. Dalam fail konfigurasi Nginx, anda boleh menambah konfigurasi berikut: 🎜rrreee🎜Dalam konfigurasi di atas, proxy_cache_purge menentukan arahan untuk mengosongkan cache dan menghantar nama cache dan URI yang diminta. 🎜🎜2. Butiran pelaksanaan caching kandungan dinamik🎜🎜Caching kandungan dinamik bermakna Nginx juga boleh menyimpan kandungan yang dijana secara dinamik sambil bertindak sebagai pelayan proksi terbalik untuk mengurangkan beban pada pelayan bahagian belakang dan meningkatkan kelajuan tindak balas. 🎜🎜🎜Dayakan caching kandungan dinamik🎜🎜🎜Mula-mula anda perlu mendayakan fungsi caching kandungan dinamik dalam fail konfigurasi Nginx. Maklumat konfigurasi berikut boleh ditambah dalam modul http: 🎜rrreee🎜Dalam konfigurasi di atas, fastcgi_cache_path menentukan laluan cache dan parameter yang berkaitan, yang serupa dengan konfigurasi cache proksi terbalik. Sekali lagi, kami menggunakan cache bernama my_cache. 🎜
        🎜Konfigurasikan peraturan untuk caching kandungan dinamik🎜🎜🎜Dalam fail konfigurasi Nginx, anda juga boleh mengkonfigurasi peraturan untuk caching kandungan dinamik melalui arahan location. Contohnya, kita boleh cache kandungan dinamik laluan URL yang ditentukan Konfigurasi khusus adalah seperti berikut: 🎜rrreee🎜Dalam konfigurasi di atas, fastcgi_cache menentukan cache yang hendak digunakan, fastcgi_cache_validkod >Nyatakan tempoh sah cache, <code>fastcgi_cache_methods menentukan kaedah HTTP yang akan dicache, fastcgi_cache_use_stale menentukan sama ada untuk menggunakan cache lama untuk bertindak balas apabila cache tamat tempoh, fastcgi_cache_lock menentukan sama ada untuk mendayakan kunci cache dan tamat masa kunci, dan fastcgi_pass menentukan alamat pelayan bahagian belakang. 🎜
          🎜Kosongkan cache🎜🎜🎜Begitu juga, kadangkala anda perlu mengosongkan cache secara manual, anda boleh menggunakan modul fastcgi_cache_purge untuk mencapainya. Dalam fail konfigurasi Nginx, anda boleh menambah konfigurasi berikut: 🎜rrreee🎜Dalam konfigurasi di atas, fastcgi_cache_purge menentukan arahan untuk mengosongkan cache dan menghantar nama cache dan URI yang diminta. 🎜🎜Ringkasnya, artikel ini menganalisis butiran pelaksanaan cache proksi terbalik Nginx dan cache kandungan dinamik secara terperinci, dan memberikan contoh kod yang sepadan. Dengan mengkonfigurasi dan menggunakan fungsi caching Nginx dengan betul, prestasi dan pengalaman pengguna aplikasi web boleh dipertingkatkan dengan ketara. 🎜

Atas ialah kandungan terperinci Analisis cache proksi terbalik Nginx dan butiran pelaksanaan cache kandungan dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan