Optymalizacje usług IIS 7.5 dla witryny obsługującej tylko treść statyczną

21

Chcę skonfigurować domenę bez plików cookie, która ma udostępniać statyczną zawartość aplikacji sieci Web, podobną do witryny http://sstatic.net/ , z której korzystają witryny wymiany stosów.

Moje pytanie brzmi: jakie optymalizacje mogę wprowadzić do konfiguracji IIS 7.5 dla takiej domeny? Na przykład, nigdy nie będzie odpowiedzialny za nic oprócz dostarczania treści statycznych, więc czy wyłączenie integracji ASP.NET byłoby dobrym posunięciem dla tej witryny?

Wszelkie sugestie lub odniesienia dotyczące konfigurowania takiej witryny w IIS 7.5 byłyby bardzo mile widziane.

Edytować

Aby wyjaśnić, nie jest to JEDYNA witryna na serwerze, więc sugerowane optymalizacje powinny być ukierunkowane na poziom witryny, a nie na konfigurację na poziomie serwera.

DanP
źródło

Odpowiedzi:

18

Jest w tym kilka zagadnień, niektóre obsługiwane w IIS (kompresja HTTP, buforowanie nagłówków fx), a niektóre w trakcie procesu kompilacji / przed wdrożeniem (takie jak konkatenacja plików Javascript i CSS i minimalizacja białych znaków).

W związku z tym trudno jest podać pełne podsumowanie w jednej odpowiedzi, ponieważ niektóre z nich będą zależeć od metod kompilacji i wydania. W krokach wysokiego poziomu:

  • Witryna jest „bez plików cookie” dzięki temu, że używasz nowej domeny, która nie jest powiązana z aplikacją internetową. Ponieważ nie ustawiasz żadnych plików cookie dla domeny (używając fx .NET kodu aplikacji), jest to wtedy „bez plików cookie”.

  • Należy bezwzględnie włączyć kompresję HTTP dla statycznych treści tekstowych, takich jak Javascript i CSS.

  • Nie jestem najlepszym administratorem IIS, ale o ile wiem, potrzebujesz tylko domyślnych składników IIS powiązanych z podstawową rolą serwera „Web Server (IIS)” .

  • Należy bezwzględnie włączyć długie buforowanie nagłówków dla zawartości statycznej . Ogólna rekomendacja to 31 dni, ale możesz ustawić ją wyżej lub niżej. Pamiętaj, że jeśli podajesz treść statyczną z długimi nagłówkami pamięci podręcznej, musisz zmienić adres URL, jeśli zmienisz plik, aby uniknąć ponownego wykorzystywania starej zawartości pamięci podręcznej przez klientów.

  • Państwo powinno umożliwić HTTP keep-alive (te same dokumenty jak buforowanie nagłówki).

Oprócz tego istnieją zadania przedwdrożeniowe, takie jak białe znaki kompresujące Javascript i CSS , idealnie kompresujące PNG itp. To były twoje narzędzia programistyczne i cykl kompilacji pomaga zdecydować, jak kontynuować.

Kiedy skończysz, spróbuj pobrać kilka plików ze swoich statycznych serwerów z włączoną funkcją YSlow . Uważam, że zestaw reguł „Classic V2” daje największy wpływ na wysiłek, więc sugerowałbym sprawdzić swój wynik w stosunku do tego zestawu reguł YSlow.

W zestawie reguł „Classic V2” reguły te mają czyste zastosowanie do instancji i treści IIS serwera statycznego:

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
Jesper M.
źródło
Dzięki za komentarze: już zadbałem o uwagi przedprodukcyjne, które zauważyłeś. To, co naprawdę mnie interesuje, to drobiazgowość konfiguracji IIS. Ponieważ nie ma nic oprócz zawartości statycznej, zakładam, że mogę usunąć wiele rzeczy z potoku http itp.
DanP
1
@DanP: Naprawdę nie ma tak dużo pracy przy konfigurowaniu IIS. Microsoft jest dobry w dostarczaniu minimalnych konfiguracji „domyślnie bezpiecznych”. Optymalizacja wydajności poprzez usunięcie komponentów IIS, które są częścią podstawowej roli serwera, to przedwczesna optymalizacja IMHO. Mogę prawie zagwarantować, że wzrost wydajności nie będzie tego wart, ponieważ statyczne serwowanie plików ma zwykle trywialnie niskie obciążenie serwera. Dla wydajności użytkownika końcowego istotną częścią jest poprawna semantyka HTTP - buforowanie nagłówków, kompresja, utrzymywanie aktywności, zgodnie z powyższymi dokumentami.
Jesper M
Domyślne ustawienia są przeznaczone do statycznego udostępniania plików - jeśli dodasz rolę serwera WWW, skonfigurujesz minimalny potok do obsługi plików statycznych. Aby zminimalizować rurociąg - nie instaluj niczego innego!
TristanK
@TristanK: Myślę, że powinienem być bardziej szczegółowy ... to nie jest TYLKO witryna na serwerze IIS, więc muszę dokonać optymalizacji na poziomie witryny, a nie serwera.
DanP
Tak, to trochę kluczowa informacja. Jeśli zdecydowałeś, że jest to twoja wybrana ścieżka, uważam, że: a) zainstaluj nowy do porównania, b) zaznacz wszystkie moduły / moduły obsługi, które chcesz usunąć (które nie są częścią domyślnej instalacji), warunkiem wstępnym = " AppPoolName! = StaticPool "(może mieć tam składnię wstecz). To wszystko, aby włączyć / wyłączyć moduły w danej puli aplikacji.
TristanK
9

Jest tutaj bardzo ciekawy zapis, w którym ktoś używa IIS do obsługi plików statycznych. Koncentruje się głównie na poprawianiu ustawień buforowania plików IIS, aby ograniczyć aktywność dysku (co było jego wąskim gardłem). Mówi, że widział 20-krotny wzrost wydajności.

UpTheCreek
źródło