2016-10-08 16 views
0

リクエストされた日付に応じてコンテンツが変更されます。つまり、 2018-09-10T00:002018-09-10T23:59でリクエストされたときに同じコンテンツが配信されますが、コンテンツは2018-09-11T00:00に配信されます(サーバー時間に基づく)。Nginxキャッシュ:リクエスト日によって期限切れになる/変更する

これを達成するコンテンツ(上流サーバーによって設定される)に設定できるhttpヘッダーはvaryですか?

また、nginxでこれを行う別の方法があります(理想的には特定のパスのみ)。

答えて

0

クライアント側のキャッシュは、キャッシュ制御ヘッダーの設定によって制御されます。

オプションについては、http://nginx.org/en/docs/http/ngx_http_headers_module.html#expiresを参照してください。 @接頭辞を使用して時刻を指定することは可能です。だからあなたの設定は、午後3時30分サーバー時間で有効期限設定のため、次のようになります

location ~* \.(css|js)$ { 
    expires @15h30m; 
    add_header Cache-Control "public"; 
} 

コンテンツが時間ごとに有効期限が切れた場合、あなたはその空想何かのようなLUAで時間の計算を行うとすることを設定することができます有効期限によって使用されるngx変数。

+0

ありがとうございます、どういうわけか、 'expires'の絶対値のオプションが欠けていました – EoghanM

1

"Expires"ヘッダーを追加する必要があります。これはNginxやアプリケーションで行うことができます。ヘッダは、単なる一例として、次のようになります。PHPで

Expires: Sun, 09 Oct 2016 23:59:59 GMT 

をあなたがこれを生成することができます:

あなたは自分の場所やサーバブロックに以下を追加する必要がnginxので
header('Expires: ' . gmdate('D, d M Y H:i:s', strtotime(date("Y-m-d 23:59:59"))) . ' GMT'); 

expires @00h00m; 

このようにコンテンツは深夜に期限切れになります。

関連する問題