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.
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 { ... } }
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
的缓存。
在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; } }
以上配置中,proxy_cache
指定了使用哪个缓存,proxy_cache_valid
指定了缓存的有效期,proxy_cache_use_stale
指定了当缓存过期时是否使用旧的缓存进行响应,proxy_cache_background_update
指定了是否后台更新缓存,proxy_pass
指定了后端服务器的地址。
有时候需要手动清除缓存,可以使用proxy_cache_purge
模块来实现。在Nginx的配置文件中,可以添加以下配置:
location /purge { bproxy_cache_purge my_cache "$scheme$request_method$host$request_uri"; }
以上配置中,proxy_cache_purge
指定了清除缓存的命令,并传递了缓存的名称和请求的URI。
二、动态内容缓存的实现细节
动态内容缓存是指Nginx在反向代理服务器的同时,也可以将动态生成的内容进行缓存,以减轻后端服务器的负载和提高响应速度。
首先需要在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 { ... } }
以上配置中,fastcgi_cache_path
指定了缓存的路径和相关参数,与反向代理缓存的配置类似。同样,我们使用了名为my_cache
的缓存。
在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; } }
以上配置中,fastcgi_cache
指定了使用哪个缓存,fastcgi_cache_valid
指定了缓存的有效期,fastcgi_cache_methods
指定了哪些HTTP方法会被缓存,fastcgi_cache_use_stale
指定了当缓存过期时是否使用旧的缓存进行响应,fastcgi_cache_lock
指定了是否启用缓存锁和锁的超时时间,fastcgi_pass
指定了后端服务器的地址。
同样地,有时候需要手动清除缓存,可以使用fastcgi_cache_purge
模块来实现。在Nginx的配置文件中,可以添加以下配置:
location /purge { fastcgi_cache_purge my_cache "$scheme$request_method$host$request_uri"; }
以上配置中,fastcgi_cache_purge
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. 🎜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
. 🎜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. 🎜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!