Yalnızca statik içerik sunan bir site için IIS 7.5 optimizasyonları


21

Yığın değişim sitelerinin kullandığı http://sstatic.net/ sitesine benzer şekilde, bir web uygulaması için statik içerik sunma amaçlı çerez içermeyen bir etki alanı kurmayı düşünüyorum .

Sorum şu, böyle bir etki alanı için IIS 7.5 kurulumunda hangi optimizasyonları yapabilirim? Örneğin, statik içerik sunmaktan başka bir şeyden hiçbir zaman sorumlu olmayacağından, ASP.NET entegrasyonunu devre dışı bırakmak bu site için iyi bir hamle olur mu?

IIS 7.5 ile böyle bir site kurma ile ilgili herhangi bir öneri veya referanslar en iyi şekilde kabul edilir.

Düzenle

Sadece açıklığa kavuşturmak için, bu sunucudaki SADECE site değil, bu yüzden önerilen optimizasyonlar site düzeyinde değil, sunucu düzeyinde yapılandırmayı hedeflemelidir.

Yanıtlar:


18

Bunların bazıları IIS'de (HTTP sıkıştırma, önbellek başlıkları fx) ve bazıları derleme işlemi sırasında / dağıtımdan önce (Javascript ve CSS dosya birleştirme ve boşluk küçültme gibi) ele alınan bazı hususlar vardır.

Bu nedenle, bazıları derleme ve bırakma yöntemlerine bağlı olacağından, size tek bir cevapta tam bir özet vermek biraz zordur. Yüksek adımda:

  • Site, sizin web uygulamanıza bağlı olmayan yeni bir etki alanı kullanmanız nedeniyle “cookieless” tır. Etki alanı için herhangi bir tanımlama bilgisi ayarlamadığınızdan (fx .NET uygulama kodunu kullanarak), daha sonra "kokusuz" olur.

  • Sen gerektiğini kesinlikle statik metin içeriğinin HTTP sıkıştırma etkinleştirmek Javascript ve CSS gibi.

  • En iyi IIS yöneticisi değilim, ancak söyleyebildiğim kadarıyla, yalnızca temel "Web Sunucusu (IIS)" sunucu rolüyle ilişkilendirilmiş varsayılan IIS bileşenlerine ihtiyacınız var .

  • Sen gerektiğini kesinlikle sağlayacak statik içerik için uzun önbelleğe alma üst . Genel öneri 31 gündür, ancak daha yüksek veya düşük ayarlayabilirsiniz. Uzun önbellek başlıklarına sahip statik içerik sunuyorsanız, eski önbelleğe alınmış içeriğin istemciler tarafından yeniden kullanılmasını önlemek için dosyayı değiştirirseniz URL'yi değiştirmeniz gerekir.

  • Sen gerektiğini HTTP canlı tutma (başlıkları önbelleğe aynı dokümanlar) etkinleştirin.

Buna ek olarak, örneğin önceden deployement görevler vardır Javascript ve CSS sıkıştırarak boşluk ve ideal olarak kompres PNG en iyi , vb geliştirme araçları ve yapı döngüsü işlemler hakkındaki kararı yardımcı olan bu.

İşiniz bittiğinde, YSlow etkinken statik sunucularınızdan birkaç dosya indirmeyi deneyin . Bunu bulmak "Klasik V2" kural takımı bu YSlow ruleset karşı puanınızı kontrol öneririm böylece çabayla en büyük etkiyi verir.

"Klasik V2" kural kümesinden, bu kurallar statik sunucunuza IIS örnekleri ve içeriği için geçerlidir.

3. Add an Expires or a Cache-Control Header
4. Gzip Components
10. Minify JavaScript and CSS
11. Avoid Redirects
13. Configure ETags
19. Use Cookie-Free Domains for Components
22. Make favicon.ico Small and Cacheable

Yorumlarınız için teşekkür ederiz: Not aldığınız prodüksiyon öncesi hususlara zaten dikkat ettim. Asıl peşinde olduğum şey, IIS config'in nitty gritty'si. Statik içerikten başka bir şey olmadığı için http boru hattından, vb.
Pek

1
@DanP: Gerçekten IIS kurma konusunda çok fazla iş yok. Microsoft, "varsayılan olarak güvenli" asgari yapılandırmaları göndermede başarılı oluyor. Temel Sunucu Rolünün bir parçası olan IIS bileşenlerini kaldırarak performans optimizasyonu IMHO erken optimizasyonudur. Statik dosya sunumu genellikle önemsiz derecede düşük sunucu yüküne sahip olduğundan, performans kazancının buna değmeyeceğini neredeyse garanti edebilirim. Son kullanıcı performansı için önemli kısım, HTTP semantikinin sağ üstbilgi başlıklarını, sıkıştırmasını, sakıncasını yukarıdaki belgelere göre almaktır.
Jesper M,

Varsayılanlar statik dosya sunumu için tasarlanmıştır - yalnızca Web Sunucusu rolünü eklerseniz, statik dosyalar sunmak için minimum bir boru hattı kurarsınız. Yani, boru hattını en aza indirmek için - başka bir şey yüklemeyin!
TristanK

@TristanK: Daha belirgin olmalıyım ... sanırım bu, IIS sunucusunda SADECE bir site değil, bu yüzden optimizasyonlarımı sunucu düzeyinde değil, site düzeyinde yapmam gerekiyor.
DanP

Evet, bu çok önemli bir bilgi. Bunun sizin seçtiğiniz yol olduğuna karar verdiyseniz, a) karşılaştırmak için yenisini kurar, b) çıkartmak istediğiniz tüm modülleri / işleyicileri işaretler (varsayılan kurulumun bir parçası değildir) precondition = " AppPoolName! = StaticPool "(orada sözdizimi geriye doğru olabilir). Belirli bir uygulama havuzunda modülleri dahil etmek / hariç tutmak için bu oldukça fazla.
TristanK

9

Orada çok ilginç bir yazma buraya birisi statik dosyalara hizmet için IIS kullanıyor. Genelde disk aktivitesini sınırlandırmak için IIS dosyasının önbellekleme ayarlarını değiştirmeye odaklanır (bu onun tıkanıklığıydı). Performansında 20 kat artış olduğunu söyledi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.