2014-07-03 29 views
17

Nginx'i bir web sunucusu olarak kullanıyorum ve kullanıcıların statik olarak değiştirilmemiş dosyaların kopyalarını yerel olarak saklayabilmeleri ve yalnızca değiştirilen dosyaları indirebilmeleri için bir tarayıcı önbellekleme yöntemi uygulamak istiyorum. Önerilerden biri, değiştirilen dosyaları bulmak ve yenilemek için dosyaların zaman damgasını kullanmaktı. Ancak bu, her yeni uygulamadan sonra tüm web uygulamasının yeni bir sürümünün oluşturulduğundan ve tüm dosyaların zaman damgalarından beri mümkün değil. değişiklik.Nginx'de ETag nasıl yapılandırılır

ETag başlığı hakkında biraz araştırma yaptım ve oldukça iyi bir çözüm gibi görünüyordu, ancak Etags'ın henüz Nginx tarafından resmi olarak desteklenmediğini öğrendim.

E-postaları Nginx veya herhangi bir alternatif çözüm üzerinde uygulama yolu var mı?

+1

Eğer 'gzip 'kullanarak' gzip' işlevini devre dışı bırakırsanız, 'cevabını' etag' başlığını cevabınızda görebilirsiniz. – efkan

+2

Nginx'in etag'i oluşturmak için dosyanın son değişiklik tarihini ve dosya boyutunu kullandığını unutmayın. –

+0

Bir güvenlik tarayıcısından (Nikto gibi), inode'ları aktaran etags hakkında bir şikayette bulunursanız, nginx çalıştırıyorsanız, muhtemelen [nginx etags'daki inode'ları içermez] (http://serverfault.com/questions) yanlış bir pozitiftir./690.341/algoritma arkası nginx-etag nesil). Apache, apache'nin varsayılan olarak inode'ları sızdırmasına rağmen ('FileETag' yönergesine bakın) apache'de devre dışı bırakılabilir. – Synchro

cevap

27

Nginx'inizi yükseltin.

Syntax:  etag on | off; 
Default: etag on; 

Context: http, server, location 

This directive appeared in version 1.3.3. 

Enables or disables automatic generation of the “ETag” response header field for static resources. 

Kaynak: http://nginx.org/en/docs/http/ngx_http_core_module.html#etag

+8

Teşekkür ederim, bunu denedim ve Etag üstbilgisi HTTP üstbilgisine eklendi, ancak yine de önbellek doğrulaması, Last Modified üstbilgisini kaldırdığımda bile dosyaların zaman damgalarına dayanıyor. Dosyalarda gerçekten bir değişiklik olduğunda dosyaların sadece dosyaların zaman damgalarını doğrulamakla kontrol edilmesini istiyorum. – HanouaJ

7

(2016 itibariyle) Nginx Tüm son sürümleri otomatik bu ayarlayacaktır. Örneğin

:

location /img { 
    root /path/to/public; 
} 

ve Etag + Last-Modified başlıklar döndürülür yanıt başlıkları.

İlgili konular