Konfigurasi pembersihan cache Nginx untuk memastikan kandungan tapak web dikemas kini
Apabila membina tapak web, kami sering menggunakan Nginx sebagai pelayan proksi terbalik untuk mempercepatkan akses tapak web dan cache fail statik. Walau bagaimanapun, apabila kami mengemas kini kandungan tapak web, kami perlu mengosongkan cache Nginx tepat pada masanya untuk memastikan pengguna mengakses kandungan terkini. Artikel ini akan memperkenalkan cara mengkonfigurasi pembersihan cache Nginx untuk memastikan kandungan laman web dikemas kini.
1. Konfigurasikan laluan cache
Pertama, kita perlu mengkonfigurasi laluan cache Nginx. Buka fail konfigurasi Nginx, biasanya /etc/nginx/nginx.conf
atau /etc/nginx/conf.d/default.conf
dan cari http, tambah konfigurasi berikut: <code>/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
,找到http
段,添加以下配置:
http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... } ... }
上述配置将缓存文件存储在/var/cache/nginx
目录下,并设置了缓存大小为10GB,缓存过期时间为60分钟。需要根据实际情况进行调整。
二、配置缓存清理接口
接下来,我们需要配置一个接口用于清理Nginx的缓存。
在Nginx的配置文件中,找到需要清理缓存的地方,比如一个POST请求:
http { ... server { ... location /update { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 清理缓存 proxy_cache_purge my_cache GET POST; } ... } ... }
上述配置中,location /update
用于匹配需要更新的URL路径,比如/update
。proxy_cache_purge
指令用于清理缓存,参数GET POST
表示同时清理GET和POST请求的缓存。可以根据实际情况进行调整。
三、安装Purge模块
Nginx的默认安装中并不包含proxy_cache_purge
模块,我们需要手动安装。
使用以下命令安装Nginx的模块管理工具:
yum install -y yum-utils
使用以下命令添加Nginx的扩展源:
yum-config-manager --add-repo=https://nginx.org/packages/centos/7/x86_64/
最后,使用以下命令安装Nginx的nginx-module-cache-purge
模块:
yum install -y nginx-module-cache-purge
四、重启Nginx服务
完成以上配置后,需要重启Nginx服务使配置生效。使用以下命令重启Nginx:
systemctl restart nginx
五、清理缓存的方式
现在,我们可以通过访问清理缓存的接口来实现清理Nginx的缓存。比如,如果我们要清理/update
路径的缓存,可以使用以下命令:
curl -X POST http://yourdomain.com/update
这样就会触发Nginx清理/update
路径下的缓存。
六、自动清理缓存
为了保证网站内容的更新,我们可以通过定期清理缓存的方式,自动保持Nginx中的缓存与实际网站内容的一致性。
我们可以使用定时任务工具(如Cron)来定期执行清理缓存的命令。比如,设置每天凌晨4点清理一次缓存,可以使用以下命令编辑定时任务:
crontab -e
然后添加以下一行命令:
0 4 * * * curl -X POST http://yourdomain.com/update >> /tmp/nginx_cache_clear.log 2>&1
保存并退出编辑器,这样每天凌晨4点就会触发一次清理缓存的操作,并将执行结果保存在/tmp/nginx_cache_clear.log
rrreee
/var/cache/nginx
dan menetapkan saiz cache kepada 10GB dan masa tamat tempoh cache kepada 60 minit. Perlu diselaraskan mengikut situasi sebenar. 2. Konfigurasikan antara muka pembersihan cacheSeterusnya, kita perlu mengkonfigurasi antara muka untuk membersihkan cache Nginx. 🎜🎜Dalam fail konfigurasi Nginx, cari tempat di mana cache perlu dikosongkan, seperti permintaan POST: 🎜rrreee🎜Dalam konfigurasi di atas, lokasi /kemas kini
digunakan untuk memadankan laluan URL yang perlu dikemas kini, seperti proxy_cache_purge
digunakan untuk mengosongkan cache dan parameter GET POST
bermaksud mengosongkan cache permintaan GET dan POST pada masa yang sama. Ia boleh diselaraskan mengikut keadaan sebenar. 🎜🎜3. Pasang modul Purge 🎜🎜Pemasangan lalai Nginx tidak termasuk modul proxy_cache_purge
, kami perlu memasangnya secara manual. 🎜🎜Gunakan arahan berikut untuk memasang alat pengurusan modul Nginx: 🎜rrreee🎜Gunakan arahan berikut untuk menambah sumber sambungan Nginx: 🎜rrreee🎜Akhir sekali, gunakan arahan berikut untuk memasang nginx-module-cache-purge kod> modul :🎜rrreee🎜4. Mulakan semula perkhidmatan Nginx🎜🎜Selepas melengkapkan konfigurasi di atas, anda perlu memulakan semula perkhidmatan Nginx untuk membuat konfigurasi berkuat kuasa. Gunakan arahan berikut untuk memulakan semula Nginx: 🎜rrreee🎜 5. Cara mengosongkan cache 🎜🎜 Kini, kita boleh membersihkan cache Nginx dengan mengakses antara muka cache bersih. Sebagai contoh, jika kita ingin mengosongkan cache dalam laluan <code>/update
, kita boleh menggunakan arahan berikut: 🎜rrreee🎜Ini akan mencetuskan Nginx untuk membersihkan cache dalam /update laluan. 🎜🎜6. Kosongkan cache secara automatik🎜🎜Untuk memastikan kandungan laman web dikemas kini, kami secara automatik boleh mengekalkan konsistensi antara cache dalam Nginx dan kandungan laman web sebenar dengan membersihkan cache secara berkala. 🎜🎜Kami boleh menggunakan alatan tugas berjadual (seperti Cron) untuk melaksanakan perintah pembersihan cache secara kerap. Sebagai contoh, untuk menetapkan cache untuk dikosongkan setiap hari pada pukul 4 pagi, anda boleh menggunakan arahan berikut untuk mengedit tugas yang dijadualkan: 🎜rrreee🎜 Kemudian tambah baris arahan berikut: 🎜rrreee🎜 Simpan dan keluar dari editor, supaya operasi pembersihan cache akan dicetuskan pada pukul 4 pagi setiap hari dan menyimpan hasil pelaksanaan dalam fail <code>/tmp/nginx_cache_clear.log
. 🎜🎜Ringkasan🎜🎜Melalui konfigurasi di atas, kami boleh membersihkan cache Nginx secara automatik dan memastikan kandungan tapak web dikemas kini. Pada masa yang sama, kami juga boleh melaraskan laluan cache dan kaedah pembersihan secara fleksibel mengikut keperluan untuk menyesuaikan diri dengan keperluan tapak web yang berbeza. 🎜Atas ialah kandungan terperinci Konfigurasi pembersihan cache Nginx untuk memastikan kandungan tapak web dikemas kini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!