Cara menggunakan Nginx untuk caching fail statik berprestasi tinggi
Nginx ialah pelayan web sumber terbuka ringan yang telah mendapat perhatian dan penggunaan meluas untuk prestasi tinggi dan keupayaan serentak tinggi. Selain sebagai pelayan web, Nginx juga mempunyai fungsi penting, iaitu menyediakan fungsi caching fail statik, yang dapat mengoptimumkan kelajuan akses dan prestasi laman web dengan sangat baik. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk cache fail statik berprestasi tinggi dan memberikan contoh kod yang sepadan.
server { listen 80; server_name example.com; root /path/to/static/files; location ~* .(jpg|jpeg|png|gif|css|js)$ { expires 30d; access_log off; } }
Dalam konfigurasi di atas,listen
menentukan port yang didengari Nginx danserver_name
menentukan nama domain pelayan.root
menentukan direktori akar tempat fail statik berada. Arahanlokasi
menentukan corak URL yang sepadan dan parameter pemprosesan yang sepadan. Dalam konfigurasi di atas, ungkapan biasa~* .(jpg|jpeg|png|gif|css|js)$
sepadan dengan akhiran jpg, jpeg, png, gif, css atau js Untuk fail,tamat tempoh
menyatakan bahawa tempoh sah cache ialah 30 hari danaccess_log off
melumpuhkan pengelogan akses kepada fail statik.listen
指定了Nginx监听的端口,server_name
指定了服务器的域名。root
指定了静态文件所在的根目录。location
指令指定了匹配的URL模式,以及对应的处理参数。在上面的配置中,通过正则表达式~* .(jpg|jpeg|png|gif|css|js)$
匹配了以jpg、jpeg、png、gif、css或js为后缀的文件,expires
指定了缓存的有效期为30天,access_log off
则禁止了对静态文件的访问日志记录。
location ~* .(jpg|jpeg|png|gif|css|js)$ { expires 30d; access_log off; add_header Cache-Control "public"; add_header Pragma public; etag off; }
在上述示例中,add_header
指令添加了两个头部信息,分别是Cache-Control
和Pragma
。这两个头部信息告诉客户端和其他缓存服务器在一定时间内可以使用缓存的副本。etag off
禁用了Etag头部信息,因为在某些情况下,Etag可能会导致一些兼容性问题。
Cache-Control
和Expires
字段,以及响应内容的大小。如果缓存生效,那么在第一次访问静态文件后,再次请求时会看到Cache-Control
和Expires
的值与上述配置一致,并且响应内容的大小会变得非常小。另外,可以使用命令行工具如curl来查看HTTP响应头部信息。例如,可以执行以下命令来查看一个图片文件的HTTP响应头部信息:
$ curl -I example.com/path/to/image.jpg
如果缓存生效,那么你会在结果中看到类似下面的行:
Cache-Control: public, max-age=2592000 Expires: Thu, 10 Aug 2023 08:16:50 GMT
style.css
,我们可以将其重命名为style.v1.css
$ nginx -s reload
Dalam contoh di atas, arahanadd_header
menambah dua maklumat pengepala, iaituCache-Control
dan kodPragma
>. Kedua-dua pengepala ini memberitahu pelanggan dan pelayan caching lain bahawa salinan cache tersedia untuk tempoh masa tertentu.etag off
melumpuhkan maklumat pengepala Etag, kerana dalam sesetengah kes, Etag boleh menyebabkan beberapa isu keserasian.
Sahkan sama ada cache fail statik berkesan
Untuk mengesahkan sama ada cache fail statik berkesan, anda boleh menggunakan alat pembangun penyemak imbas atau alatan baris arahan untuk menyemak. Dalam alatan pembangun penyemak imbas, anda boleh melihat medanCache-Control
danExpires
pengepala respons HTTP, serta saiz kandungan respons. Jika cache berkuat kuasa, selepas mengakses fail statik buat kali pertama, anda akan melihat bahawa nilaiCache-Control
danExpires
adalah konsisten dengan yang di atas. konfigurasi apabila anda meminta sekali lagi, dan kandungan respons akan Saiz akan menjadi sangat kecil.
style.css
, kami boleh menamakan semula fail tersebut kepada
style.v1.css
dan mengemas kini fail konfigurasi Nginx agar sepadan dengan nama fail baharu . Dengan cara ini, setiap kali fail CSS diubah suai, anda hanya perlu mengemas kini nombor versi dalam nama fail. Selain itu, Nginx juga menyediakan arahan muat semula untuk memuat semula fail konfigurasi tanpa menghentikan pelayan. Sebagai contoh, anda boleh melaksanakan arahan berikut untuk memuatkan semula fail konfigurasi Nginx: rrreee Dengan cara ini, Nginx akan membaca semula fail konfigurasi dan konfigurasi yang dikemas kini akan berkuat kuasa serta-merta. RingkasanDengan menggunakan Nginx untuk caching fail statik, prestasi dan kelajuan akses tapak web boleh dipertingkatkan dengan ketara. Dalam artikel ini, kami memperkenalkan cara mengkonfigurasi Nginx untuk mendayakan akses fail statik dan fungsi caching, dan menyediakan contoh kod dan kaedah pengesahan yang sepadan. Semoga kandungan ini akan membantu anda mengoptimumkan prestasi laman web anda.
Atas ialah kandungan terperinci Cara menggunakan Nginx untuk cache fail statik berprestasi tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!