Оптимізація IIS 7.5 для сайту, що обслуговує лише статичний вміст


21

Я хочу налаштувати домен, що не містить файлів cookie, призначений для розміщення статичного вмісту для веб-програми, подібно до сайту http://sstatic.net/, який використовуються сайти для обміну стеками.

Моє запитання: які оптимізації я можу зробити для встановлення IIS 7.5 для такого домену? Наприклад, він ніколи не несе відповідальності за що-небудь, крім розміщення статичного вмісту, тож відключення інтеграції ASP.NET було б хорошим кроком для цього сайту?

Будь-які пропозиції чи посилання щодо створення такого веб-сайту за допомогою IIS 7.5 були б дуже бажаними.

Редагувати

Для уточнення це не ТІЛЬКИ сайт на сервері, тому запропоновані оптимізації повинні орієнтуватися на рівень сайту, а не на конфігурацію рівня сервера.

Відповіді:


18

У цьому є кілька міркувань, деякі з яких обробляються на IIS (стиснення HTTP, кешування заголовків fx), а деякі з них обробляються в процесі збирання / перед розгортанням (наприклад, з'єднання файлів Javascript та CSS та мінімізація пробілів).

Таким чином, трохи важко дати вам повний пропуск в одній відповіді, оскільки деяка частина цього буде залежати від ваших методів збирання та випуску. На високому рівні:

  • Сайт є "без cookie" завдяки тому, що ви використовуєте новий домен, той, який не пов'язаний з вашими веб-додатками. Оскільки ви не встановлюєте файли cookie для домену (використовуючи код програми fx .NET), він тоді "cookie".

  • Ви повинні абсолютно включити стиснення HTTP для статичного текстового вмісту, такого як Javascript та CSS.

  • Я не найбільший адміністратор IIS, але наскільки я можу сказати, вам потрібні лише компоненти IIS за замовчуванням, пов'язані з основною роллю сервера "Web Server (IIS)" .

  • Ви повинні абсолютно включити довгі заголовки кешування для статичного вмісту . Загальна рекомендація - 31 день, але ви можете встановити її вище або нижче. Пам'ятайте, що якщо ви розміщуєте статичний вміст із довгими заголовками кеша, тоді вам потрібно змінити URL-адресу, якщо ви зміните файл, щоб уникнути повторного використання старого кешованого вмісту клієнтами.

  • Ви повинні включити HTTP Keep-Alive ( ті ж документи , як кешування заголовків).

На додаток до цього, існують завдання перед розгортанням, такі як пробіл, що стискає Javascript і CSS , і в ідеалі краще стискати PNG тощо. Це були ваші інструменти розробки і цикл складання допомагає вирішити, як діяти далі.

Коли ви закінчите, спробуйте завантажити кілька файлів зі своїх статичних серверів з увімкненою функцією YSlow . Я вважаю, що набір правил "Classic V2" дає найбільший вплив на зусилля, тому я б запропонував перевірити свою оцінку щодо цього набору правил YSlow.

З набору правил "Classic V2" ці правила чітко застосовуються до екземплярів і вмісту статичного сервера IIS:

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

Дякуємо за ваші коментарі: Я вже подбав про зауваження, які ви відзначили. Те, про що я дійсно хотів, - це ніткова зернистість конфігурації IIS. Оскільки немає нічого, крім статичного вмісту, я припускаю, що я можу видалити багато речей із http-конвеєра тощо
DanP

1
@DanP: Насправді не так багато роботи в налаштуванні IIS. Майкрософт отримує гарну доставку мінімальної конфігурації "безпечно за замовчуванням". Оптимізація продуктивності шляхом видалення компонентів IIS, що входять до основної ролі сервера, - це передчасна оптимізація IMHO. Я майже можу гарантувати, що підвищення продуктивності не варто, оскільки статичне обслуговування файлів зазвичай має тривіально низьке завантаження сервера. Для продуктивності кінцевих користувачів важливою частиною є отримання правильної семантики HTTP - кешування заголовків, стиснення, збереження, відповідно до вищезазначених документів.
Jesper M

Значення за замовчуванням розроблені для розміщення статичних файлів - якщо ви просто додаєте роль веб-сервера, ви встановлюєте мінімальний конвеєр для обслуговування статичних файлів. Отже, щоб мінімізувати трубопровід - не встановлюйте нічого іншого!
TristanK

@TristanK: Я думаю, я повинен бути більш конкретним ... це не ТІЛЬКИ сайт на сервері IIS, тому мені потрібно робити свої оптимізації на рівні сайту, а не на рівні сервера.
DanP

Так, це якась ключова інформація. Якщо ви вирішили, що це обраний вами шлях, я вважаю, а) встановіть новий для порівняння, б) позначте будь-які модулі / обробники, які ви хочете викреслити (які не є частиною встановлення за замовчуванням) з попередньою умовою = " AppPoolName! = StaticPool "(може бути синтаксис там назад). Це майже все, щоб включити / виключити модулі в заданому пулі додатків.
ТрістанК

9

Тут дуже цікаво написати, де хтось використовує IIS для обслуговування статичних файлів. Він в основному зосереджується на налаштуванні параметрів кешування файлів IIS для обмеження активності диска (що було його вузьким місцем). Він каже, що побачив 20-кратну продуктивність.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.