1. Perkara penyediaan
Saya rasa anda memerlukan perisian nginx yang berfungsi dengan betul: pasang nginx, php 7 dan mysql 5.7 (lemp) pada ubuntu 16.04 lts.
2 Konfigurasikan nginx
Anda boleh merujuk manual arahan tamat tempoh untuk menetapkan masa tamat pengepala http ini boleh diletakkan dalam http {}
, server {}
, location {}
dan blok pernyataan lain atau pernyataan bersyarat dalam blok pernyataan location {}
. Secara umumnya, anda akan menggunakan arahan expires
dalam blok pernyataan lokasi untuk mengawal fail statik anda, seperti berikut:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }
Dalam contoh di atas, semua nama akhiran ialah .jpg
, .jpeg
, Fail .png
, .gif
, .ico
, .css
dan .js
akan tamat tempoh 365 hari selepas penyemak imbas mengakses fail tersebut. Oleh itu anda perlu memastikan bahawa blok location {}
hanya mengandungi fail statik yang boleh dicache oleh penyemak imbas.
Kemudian mulakan semula proses nginx:
/etc/init.d/nginx reload
Anda boleh menggunakan tetapan masa berikut dalam arahan expires
:
off
Biarkan expires
dan cache-control
pengepala tidak boleh ditukar.
epoch
Tetapkan pengepala expires
kepada 1 Januari 1970 00:00:01.
max
Tetapkan pengepala expires
kepada 23:59:59 pada 31 Disember 2037 dan tetapkan masa kemandirian maksimum cache-control
kepada 10 tahun
Masa tanpa awalan @
bermakna ini ialah masa tamat yang berkaitan dengan masa capaian penyemak imbas. Anda boleh menentukan masa negatif, yang akan menetapkan pengepala kawalan cache kepada tiada cache. Contohnya: expires 10d
atau expires 14w3d
.
Masa yang diawali dengan @
menentukan masa hari untuk tamat tempoh ialah hh atau hh:mm Julat h ialah 0 hingga 24, dan julat m ialah 0. hingga 59, contohnya: expires @15:34
.
Anda boleh menggunakan unit masa berikut:
ms
: milisaat
s
: saat
m
: minit
h
: jam
d
: Hari
w
: Minggu
m
: Bulan (30 hari)
y
: tahun (365 hari)
Contohnya: 1h30m
bermaksud satu jam tiga puluh minit, 1y6m
bermaksud satu tahun Enam bulan.
Perhatikan bahawa jika anda menggunakan pengepala yang akan tamat tempoh jauh pada masa hadapan, anda perlu menukar nama fail komponen apabila komponen diubah suai. Oleh itu, adalah idea yang baik untuk menentukan versi fail. Contohnya, jika anda mempunyai fail javascript.js dan anda ingin mengubah suainya, anda boleh menambah nombor versi selepas nama fail yang diubah suai. Kemudian penyemak imbas akan memuat turun fail Jika anda tidak menukar nama fail, penyemak imbas akan memuatkan fail (lama) daripada cache.
Selain menetapkan pengepala expires
berdasarkan masa capaian penyemak imbas (seperti expires 10d
), anda juga boleh menetapkan garis dasar pengepala modified
dengan menggunakan kata kunci expires
di hadapan masa fail itu diubah suai (sila ambil perhatian ini hanya sah untuk fail sebenar yang disimpan pada cakera keras).
expires modified 10d;
3 Ujian
Untuk menguji sama ada konfigurasi anda sah, anda boleh menggunakan fungsi analisis rangkaian dalam alat pembangun Firefox dan kemudian menggunakan Akses Firefox fail statik (seperti imej). Dalam maklumat pengepala output, anda seharusnya dapat melihat pengepala expires
dan pengepala max-age
dengan tanda cache-control
(tanda max-age
mengandungi nilai dalam saat, seperti 31536000, yang merujuk kepada masa hadapan Setahun)
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi caching fail statik dalam nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!