Как стать автором
Обновить
0

IIS *

Набор серверов Microsoft для служб Интернета

Сначала показывать
Порог рейтинга
Уровень сложности

Создаем сертификаты Let's Encrypt на MacOS и размещаем их на IIS сервере

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.7K

В моей практике мы часто сталкиваемся с простейшими задачами, которые в свою очередь несут огромную пользу, но полного манула найти не просто и приходится собирать по крупицам. Статью пишу по большей степени для себя, так как сертификат Let’s Encrypt создается на 3 месяца и каждый раз приходится искать ссылки и запросы в терминале (заново все собирать по крупицам).

В этой статье я расскажу, как установить SSL сертификат Let’s Encrypt, созданный на MacOS, на IIS сервер.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 12

Новости

Хранение изображений сайта в БД

Время на прочтение 8 мин
Количество просмотров 35K
Автор должен признаться: статья родилась и выросла из довольно небольшой и не претендующей на откровение оптимизации сайта, описанного в другом материале. Сайт этот связан с музыкальной тематикой и, соответственно, активно отображает обложки альбомов, хранящиеся (до поры до времени) на сервере не в ФС, как обычно бывает, а в БД SQL Server (в BLOB-поле, о чём несложно догадаться); в старом варианте пора извлечения изображений из базы и сохранения их в виде файлов возникает в момент запроса альбомов пользователем, после чего (по истечении сессии) они удаляются.

Страница сайта с обложками

Чтобы почти окончательно развеять куцую интригу и помочь возможному читателю определиться с тем, имеет ли смысл продолжить чтение, опишу конечный результат оптимизации: обложки по-прежнему останутся в базе данных, причём в поле того же типа, но вот веб-сервер, отдающий в итоге изображения клиенту, будет «обманут» и станет обращаться за файлом знать не зная, что его на самом деле нет в ФС, а вызов идёт сразу и непосредственно к СУБД. Такой «обман» конечно же не является самоцелью – всё в основном затевалось ради уменьшения нагрузки на дисковую подсистему.
Читать дальше →
Всего голосов 13: ↑6 и ↓7 -1
Комментарии 38

Распределяем нагрузку в зависимости от URL

Время на прочтение 2 мин
Количество просмотров 1.6K

Имеем ASP.NET web приложение. Проблема в том, что приложение может выполнять как "обычные" запросы так и тяжелые запросы построения отчетов. Все запросы по умолчанию выполняются в одном Application Pool. И в случае обработки запросов на построение отчетов страдает производительность.

Задача: вынести построение отчетов в отдельный Application Pool на отдельный домен. Допустим основной сайт расположен на домене main.domain.xyz. Нам требуется все GET запросы содержащие в URL /Reports/Run обрабатывать на другом домене reports.domain.xyz.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 0

Битва WEB серверов. Часть 2 – реалистичный сценарий HTTPS:

Время на прочтение 3 мин
Количество просмотров 8.9K


О методике мы рассказывали в первой части статьи, в этой мы тестируем HTTPS, но в более реалистичных сценариях. Для тестирования был получен сертификат Let’s Encrypt, включено сжатие Brotli на 11.

На этот раз попробуем воспроизвести сценарий развертывания сервера на VDS или в качестве виртуальной машины на хосте с типовым процессором. Для этого устанавливали лимит в:

  • 25% — Что в пересчете на частоту ~ 1350МГц
  • 35% -1890Мгц
  • 41% — 2214Мгц
  • 65% — 3510Мгц

Количество единовременных подключений сократилось с 500 до 1, 3, 5, 7 и 9,
Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Комментарии 13

Истории

Что нам стоит CDN построить?

Время на прочтение 8 мин
Количество просмотров 8K
Привет Хабр! В этой статье мы будем строить свой CDN. Почему не воспользоваться готовыми решениями? Потому что сайт автора полностью статический, сделанный на Jekyll, с большими картинками, которые нужно отдавать максимально быстро. Сервер не должен быть кэширующим, он должен хранить сайт целиком, поддерживать HTTP/2 и Brotli, а на всех серверах должен быть установлен один и тот же сертификат.

Ещё мы сделаем это всё на IIS, работающим под Windows Server 2019 Core.

Читать дальше →
Всего голосов 32: ↑26 и ↓6 +20
Комментарии 7

Sharing общих сборок между процессами и доменами в IIS

Время на прочтение 8 мин
Количество просмотров 6.6K

В микросервисном мире добавление новой функциональности осуществляется путем написания нового сервиса. При этом стоимость добавления новой единицы составляет минимум 150 Мб оперативной памяти, хотя нашего кода в нем достаточно мало и используются, как правило, одни и те же сборки с небольшими отличиями в версиях.


В этой статье будут показаны пути оптимизации исключительно за счет настроек сервера, таким образом переписывание и перекомпиляция приложений не потребуется. Будет достигнут результат 25 Мб в среднем на один микросервис.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 9

Как IIS поддерживает нашу BI-аналитику, и в чем особенности настройки под Highload

Время на прочтение 7 мин
Количество просмотров 7.1K


В аналитической части бэкенда Яндекс.Денег активно используется Microsoft IIS, и уже накопился некоторый багаж знаний о его применении в высоконагруженной среде, которым хочется поделиться.


Наша аналитика работает на стеке Microsoft (SQL Server и продукты SSIS, SSAS, SSRS) – одном из лучших на рынке BI-решений. Раз в основе нашего BI лежат сервисы одного вендора, то логично и для размещения веб-приложений использовать решение Microsoft – IIS.


В статье расскажу о тех особенностях работы с запущенными на IIS приложениями, которые характерны для высоконагруженной среды.

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 11

RequestQueueLimitPerSession и его распространение на старые версии .net

Время на прочтение 4 мин
Количество просмотров 5K
Доброго времени суток! В этой статье хотел бы поделиться решением неожиданной проблемы, возникшей в одном из проектов, над которым я сейчас работаю.

Что может быть опасного в обновлении .net 4.6.1 до .net 4.6.2? Я считал что для процесса обновления минорной версией достаточно прочитать release notes, чтобы избежать серьезных проблем. Однако, как выяснилось, Microsoft может привнести очень интересные и занимательные изменения в обход release notes, которые смогут вас занять в «скучные летние вечера и выходные дни».

Под катом будет описание одной проблемы возникшей из-за обновления и пути её решения, а так же немного исходников .net.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 4

IIS Request filtering против ddos-атаки

Время на прочтение 5 мин
Количество просмотров 15K

Лежим


Заказчик, чьи сайты я поддерживал ранее, обратился с тем, что сайт лежит и отдает 500 ошибку. У него стандартный сайт на ASP.NET WebForms, не скажу, что очень нагруженный, но бывали проблемы с производительностью базы данных (MS SQL Server на отдельном сервере). Недавно сервер БД поменяли и перенесли данные.

Этот сайт не основной бизнес заказчика, поэтому практически не обслуживался. У него не настроено никакого мониторинга  и сбора метрик и вообще за ним особо не следят.

Данные телеметрии


Какие аномалии бросились в глаза:

  1. Процесс w3wp использовал более 50% CPU (обычно сильно меньше).
  2. Количество потоков в этом процесс стабильно прирастало (сайт не успевал обслужить клиентов).
  3. Диск на сервере БД использовался на 100% (Active Time).
  4. Длина очереди обращений к диску с базами проекта была большой (обычно в районе нуля-единиц).
  5. Оперативная память на сервер БД использована полностью.
  6. Профайлер показал, что есть один горячий метод, который ходит в БД.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 8

Развёртывание Django 1.9 на IIS 7+

Время на прочтение 6 мин
Количество просмотров 22K

Предисловие


Всем привет!


Не так давно ко мне обратились с просьбой о создании сайта. Интересный крупный проект с множеством "хочу вот это". Среди пожеланий были два главных, определивших web framework для написания, это интернационализация и панель администратора. Как уже понятно из заголовка статьи, таким framework'ом стала Django.


На старте, и почти всё время разработки, у нас не было одной вещи — сервера. Было доменное имя, бодрым темпом разрабатывался сайт, к проекту присоединился дизайнер, но сервер нам так выделить не могли. Все показы сайта проходили на моём ноутбуке, не давая возможности заказчику сесть вечером с кружкой кофе, расслабиться и насладиться тем, что мы уже для него сделали. А также, отсутствие возможности показать нашу работу людям лишало нас получения обратной связи.


И вот, можно сказать на днях, свершилось чудо — у нас появился сервер. И как следствие этого — эта статья.


Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 17

Исправлена серьезная ошибка в официальной документации по настройке SSL в web-ролях Microsoft Azure

Время на прочтение 2 мин
Количество просмотров 4.3K

Хорошие новостиTM: есть небольшое, но важное развитие сюжета из этого поста, где много букв и долгая история, которая могла отвлечь часть целевой аудитории от необходимости проверить и исправить настройки. После вливания освежающих пул-запросов была обновлена официальная документация, показывающая, как правильно настраивать SSL в веб-ролях Microsoft Azure — один и два. Исправлена серьезная ошибка в примерах настроек.

Если вы разрабатываете или сопровождаете облачный сервис с веб-ролью, самое время проверить, что настройки SSL указаны правильно и вас не настигнет в самый неподходящий момент волна недовольства пользователей, у которых КРАЙНЕ НЕОЖИДАННО без ясных причин перестало устанавливаться защищенное соединение с вашим сервисом.
Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 0

Вышел драйвер PDO MSSQL(pdo_sqlsrv) для PHP7

Время на прочтение 1 мин
Количество просмотров 13K
image

Небольшая заметка для тех, кто по роду деятельности работает с базой MSSQL через PDO,
теперь данная возможность появилась и в PHP7

Что такое PDO и зачем стоит им пользоваться можно прочитать в этой статье:

habrahabr.ru/post/137664

Скачать драйвер можно здесь:

github.com/Azure/msphpsql/releases/tag/v4.0.2

Установка сводится лишь к копированию соответствующей *.dll в папку PHP\ext и подключением в php.ini
Это предварительная версия, но вполне рабочая, по крайней мере проблем за 2 дня использования замечено не было,
работает отлично!
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 0

Деплой ASP.NET приложений при помощи символических ссылок

Время на прочтение 5 мин
Количество просмотров 10K
Всем привет.
Все мы немного нервничаем при установке нового релиза на прод. Существует много различных технологий позволяющих нам облегчить этот процесс и сделать его чуть менее нервозным. Одна из таких технологий, которую уже довольно давно облюбовали UNIX-инженеры, это использование символических ссылок, позволяющая свести к минимуму время накатки релиза и откатки на предыдущий релиз если «что-то пошло не так»(с). Этот механизм так же присутствует и в Windows, однако почему-то активно не используется. А зря. Данная статья призвана поправить это недоразумение и сделать процесс накатки релиза более приятным.


Кадр из х/ф «Джентльмены удачи»
Читать дальше →
Всего голосов 19: ↑15 и ↓4 +11
Комментарии 10

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Как не самое удачное поведение по умолчанию может годами маскировать неправильную работу

Время на прочтение 8 мин
Количество просмотров 18K
МНОГО ДЕТАЛЕЙОчень удобно, когда благодаря правильно выбранным умолчаниям все работает само и «из коробки» и не нужно ничего настраивать. Эта история о том, что выбранные умолчания должны быть работоспособными всегда, в противном случае есть риск непредвиденного отказа после многих лет беспроблемной работы.

Мы столкнулись с недокументированным поведением Windows Server в web-ролях Microsoft Azure, которое долгие годы маскировало неправильную настройку нашего сервиса Cloud OCR SDK, пока в один не самый прекрасный момент не привело к серьезным проблемам у отдельных пользователей.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 11

Добавление прокси в любое приложение на IIS

Время на прочтение 3 мин
Количество просмотров 11K
В корпоративной среде часто возникает необходимость в веб-приложении на asp.net реализовать возможность выхода через прокси сервер (даже с авторизацией) для скачивания той или иной информации.

Например:

  • Реализуемое ПО требует на уровне приложения-сервера скачивать с веб ресурсов ту или иную информацию
  • При размещении любой CMS требуется возможность для подключения приложения к репозиторию разработчиков для скачивания тем, плагинов и т.п. (некоторые CMS вообще не устанавливаются без предварительной авторизации на стороне сервера разработчиков)
  • В SharePoint есть множество сервисов, которые требуют прямого подключения к сайтам Microsoft (пример подключение к office.com для установки внешних приложений)
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 0

Ферма IIS и Application Request Routing

Время на прочтение 4 мин
Количество просмотров 24K


Совсем недавно мои коллеги написали несколько статей про shared-хостинг на базе Cloud Linux, а сегодня я расскажу вам про технологии Microsoft которые мы используем для услуги Windows-хостинга. Речь пойдет про связку IIS 8.5 и Application Request Routing (ARR).

ARR — это расширение для IIS которое позволяет собирать множество серверов IIS в единую ферму. Оно позволяет производить балансировку нагрузки HTTP-трафика, использовать правила маршрутизации и может выступать в роли кэширующего Reverse Proxy-сервера для разгрузки основных серверов предоставления контента.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 10

Управление удалённым IIS

Время на прочтение 8 мин
Количество просмотров 14K

Вступление


Некоторое время назад мне была поставлена задача найти оптимальный способ программного управления удалённым IIS и реализовать его в виде некоего модуля. Задача интересная, с множеством трудностей, поэтому хочется поделиться своим опытом.

Вот список основных требований к реализуемому модулю:
  • Возможность выполнения основных операций с IIS:
    • создание сайта
    • создание virtual application
    • создание virtual directory
    • настройка bindings для сайтов, включая установку сертификатов SSL
    • создание пулов приложений с детальной настройкой
  • Поддержка параллельной работы с несколькими IIS на разных серверах фермы
  • Поддержка IIS версии 8.0 (более ранние версии поддерживать не нужно).

Одним словом, модуль должен был уметь практически всё, что можно сделать через IIS Manager.
Как реализовывался данный функционал
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 8

Оптимизация ASP.NET — практические советы по работе с IIS

Время на прочтение 12 мин
Количество просмотров 95K
В данной публикации речь пойдёт о настройке важных параметров пула ASP.NET-приложений при вызове удалённых веб-сервисов и активной работе с сетью на стороне сервера через стандартные классы .NET.



Введение


Приходилось ли вам когда-нибудь самим настраивать производственные веб-сервера (production servers) под управлением ОС Windows Server 2008 R2/IIS 7.5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб-разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной.

Итак, приступаем. Ускоряем сайт на ASP.NET — экономим деньги предприятия и нервы администратора.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 6

День ASP.NET: пик Балмера, Pluralsight и будущее ASP.NET

Время на прочтение 3 мин
Количество просмотров 9.9K


Меньше двух недель осталось до Дня ASP.NET 28 февраля. Наша команда уже проверяет звук и печатает бейджики. Наши спикеры дорисовывают свои презентации и оттачивают формулировки. А я расскажу о том, как мы будем способствовать обретению сверхчеловеческих программистских способностей у наших участников.

Мне представляется, что успех разработчика заключается в трех вещах: практических профессиональных знаниях, высокой жизненной энергии и непрерывном образовании (все заметили, что чтобы оставаться на месте приходится бежать?).

Как нам удалось эти бенефиты включить в корзину для участника — читайте под катом.
Читать дальше →
Всего голосов 33: ↑28 и ↓5 +23
Комментарии 2

Настраиваем авторизацию в IIS по сертификатам используя OneToOne

Время на прочтение 2 мин
Количество просмотров 25K
Всем доброго времени суток. Так уж получилось, на работе необходимо было настроить сервер с IIS, да не просто настроить, но повесить авторизацию на разные сервисы с использованием только определенного сервису сертификата. Данная проблема может быть решена использованием нескольких центров генерации, но не будем все усложнять и приступим к настройке «ОдинКОдному» нашего IIS.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 1
1

Вклад авторов