1. 準備事項
適切に動作する nginx ソフトウェアが必要だと思います: ubuntu 16.04 lts に nginx、php 7、mysql 5.7 (lemp) をインストールします。
2 nginx の設定
http ヘッダーの有効期限を設定するには、expires の取扱説明書を参照してください。このタグは http に配置できます。 {}
、server {}
、location {}
および location {}
ステートメント ブロック内の他のステートメント ブロックまたは条件ステートメント。一般に、次のように、location ステートメント ブロックで expires
ディレクティブを使用して静的ファイルを制御します。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }
上の例では、すべてのサフィックス名は .jpg です。
、 .jpeg
、 .png
、 .gif
、 .ico
、 .css
、 .js
ファイルは、ブラウザがファイルにアクセスしてから 365 日後に期限切れになります。したがって、 location {}
ステートメント ブロックには、ブラウザによってキャッシュできる静的ファイルのみが含まれていることを確認する必要があります。
その後、nginx プロセスを再起動します:
/etc/init.d/nginx reload
expires
ディレクティブで次の時間設定を使用できます:
off
期限切れ
および キャッシュ制御
ヘッダーを変更不可にします。
エポック
期限切れ
ヘッダーを 1970 年 1 月 1 日 00:00:01 に設定します。
max
Settings の有効期限が切れます
ヘッダーは 2037 年 12 月 31 日 23:59:59、設定 キャッシュ制御
最大生存時間は 10 年です。
@
プレフィックスのない時間は、ブラウザのアクセス時間に関連する有効期限であることを意味します。時間に負の値を指定すると、キャッシュ制御ヘッダーが非キャッシュに設定されます。例: 有効期限 10 日
または 有効期限 14w3d
。
プレフィックス @
が付いた時刻は、一日の特定の時刻に期限切れになる時刻を指定します。形式は hh または hh:mm、h の範囲は次のとおりです。 0 ~ 24、m 範囲は 0 ~ 59 です。例: expires @15:34
。
次の時間単位を使用できます:
ms
: ミリ秒
#s: 秒
m: 分
: 時間
例:
は 1 年 6 か月を意味します。 将来有効期限が切れるヘッダーを使用する場合、コンポーネントが変更されたときにコンポーネントのファイル名を変更する必要があることに注意してください。したがって、ファイルのバージョンを指定することをお勧めします。たとえば、javascript.js ファイルがあり、それを変更する場合は、変更したファイル名の後にバージョン番号を追加できます。次に、ブラウザはファイルをダウンロードします。ファイル名を変更しない場合、ブラウザはキャッシュから (古い) ファイルをロードします。
ブラウザのアクセス時間に基づいて
ヘッダー (
expires 10d など) を設定することに加えて、 変更された ## を前に渡すこともできます#Keyword の時点では、
expires ヘッダーのベースラインをファイルが変更された時点に設定します (これは、ハード ディスクに保存されている実際のファイルに対してのみ有効であることに注意してください)。
expires modified 10d;
3 テスト
設定が有効かどうかをテストするには、Firefox の開発者ツールのネットワーク分析機能を使用してから、Firefox を使用します。静的ファイル (画像など) にアクセスします。出力ヘッダー情報では、 期限切れ ヘッダーと、
max-age
cache-control ヘッダー (
max -age) が確認できるはずです。 タグには秒単位の値が含まれます。たとえば、31536000 は翌年を指します)
以上がnginx で静的ファイルのキャッシュを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。