Интернет сервер: Веб-сервер — это просто скрипт / Хабр

Содержание

NAS как Web сервер

Представим ситуацию, когда для внутрикорпоративных нужд вам потребовалось развернуть интернет-приложение, проще говоря, вебсайт. У вас есть два варианта: воспользоваться услугами хостинг-провайдера, либо купить отдельный сервер и все настроить на нем. Оба варианта предрекают вам серьезные финансовые затраты: покупка сервера, либо покупка виртуального сервера, настройка его под целевые нужды, прибегая к услугам профессионала. «И это все ради запуска простого сайта с основной информацией о моей компании?» — скажете вы. Не спешите расстраиваться. Если вы используете NAS Thecus, то для вас существует третий вариант, использовать возможности сетевого хранилища, которые позволяют установить готовые модули, настроенные на взаимодействие друг с другом и, таким образом, сократить процедуру настройки всех компонентов.

Перед тем, как мы приступим к описанию развертывания программного обеспечения NAS, кратко разберем общий принцип работы веб-приложений. Веб-приложения работают на базе серверного программного обеспечения, в состав которого входят: веб-сервер, обрабатывающий HTTP запросы, база данных, хранящая в себе всю информацию и скриптовый язык программирования, реализующий логику работы веб-приложения.

Каждый компонент этой системы представлен различными продуктами и естественно выбор, что использовать, всегда остается за вами. Мы, в свою очередь, рассмотрим реализацию на базе комплекса LAMP, в состав которого входит веб-сервер Apache, база-данных MySQL, язык PHP. Все используемое в этой статье ПО вы можете скачать с официального сайта Thecus. В качестве тестовой платформы мы будем использовать NAS Thecus N5810 PRO.

Thecus N5810 PRO

Как мы уже говорили ранее, все необходимые нам компоненты поставляются как модули приложения, что сводит весь процесс к их установке в следующей последовательности:

  1. Установка modbase1. Modbase1 это набор базовых библиотек, позволяющих работать другим модулям между собой с операционной системой Thecus. Скачать его можно по ссылке . Для установки заходим в веб-интерфейс > сервер приложений > установка App. Далее выбираем скачанный файл, нажимаем «установка» и ждем сообщения об успешном завершении процесса.

  2. Установка PHP. В качестве языка программирования, на котором будет выстроена логика работы нашего приложения, мы будем использовать PHP 5.3. Аналогичным способом устанавливаем модуль PHP.

  3. Установка веб-сервера. Как мы уже указали ранее, в качестве веб-сервера мы будем использовать Apache версии 2.4. (скачать его можно по ссылке)

После установки минимально необходимых компонентов, их необходимо включить:


Менеджер модулей

Далее необходимо указать веб-серверу, где будут храниться файлы нашего сайта. Создадим в корневой директории папку с любым именем, например, «mysite» и загрузим в неё файл index.php (создать который можно с помощью обычного Блокнота, сохранив файл с расширением .php).


Создание главной страницы сайта

Затем отредактируем конфигурационный файл веб-сервера, в котором укажем путь к вновь созданной папке.

В конфигурационный файл можно попасть через центр приложений, нажав на ссылку ApacheWEBserver (либо по адресу http://IPвашегоNAS/modules/apache/www/index.htm) и перейти во вкладку Configuration. Изменяя содержимое данного файла можно манипулировать работой веб-сервера, подстраивая его под ваши задачи. В качестве примера мы можем назначить порт (по умолчанию 88), по которому Apache будет передавать данные, а также имя сервера и многое другое. Для получения подробной информации о настройке веб-сервера Apache рекомендуем обратиться к официальной документации.

Чтобы все изменения вступили в силу необходимо перезагрузить NAS.


Конфигурационный файл веб-сервера

Настало самое время проверить, что же у нас получилось. Достаточно зайти в любой веб-обозреватель, ввести в адресной строке IP адрес вашего NAS и номер порта (по умолчанию Apache прослушивает 88 порт) -192.168.102.36:88 и мы увидим что файл, который мы заранее положили в папку mysite, был успешно обработан.

Чтобы все изменения вступили в силу необходимо перезагрузить NAS.


Первичный интерфейс вебсайта на базе комплекса LAMP

Давайте сделаем upgrade нашему решению и откроем доступ к нашему сайту не только в локальной, но и в глобальной сети Интернет. Как вы могли заметить, для доступа к сайту мы вводили в адресную строку непривычное имя сайта, а IP адрес сетевого хранилища. Это связано с тем, что у нас не настроен DNS сервер, позволяющий интерпретировать доменное имя сайта в IP адрес сервера на котором он находится.

В общем представлении, когда пользователь открывает в браузере какой-либо сайт, набирая для примера www.example.com, служба DNS интерпретирует полученное имя в числовой код, понятный компьютеру. Это предоставляет пользователям удобство в запоминании осмысленного, понятного для восприятия названия сайта, а не его числового значения. Можно установить и настроить службу DNS на NAS воспользовавшись модулем DNSServer из центра приложений, но для упрощения задачи можно воспользоваться бесплатными решениями, которые предлагают регистраторы доменных имен.

На данном этапе нам необходимо обратиться в любую службу регистрации доменных имен и зарегистрировать там доменное имя для нашего сайта, например, «mysite.ru». Затем, воспользовавшись бесплатным DNS сервисом, необходимо указать IP адрес нашего NAS в глобальной сети Интернет. Также необходимо изменить имя нашего сайта на самом веб-сервере, изменив в конфигурационном файле значение параметра ServerName на www.mysite.ru:88, а также указать в параметре Listen номер прослушиваемого порта равный 88.


Регистрация доменного имени

Обратите внимание на то, что IP, который мы использовали ранее для примера, является локальным. Глобальный IP обычно предоставляется вашим провайдером Интернет, при этом он обязательно должен быть «белым». Затем необходимо задать соответствующие правила по перенаправлению портов в маршрутизаторе.

Спустя некоторое время, после обновления всех значений в службе доменных имен (обычно обновление происходит в течение суток), доступ к нашему сайту можно получить, набрав в адресной строке «www. mysite.ru».


Интерфейс вебсайта на базе комплекса LAMP

Построенное решение может базироваться и на отличных от нашего примера компонентах. Например, в качестве веб-сервера можно использовать не менее популярный NGinx, в качестве скриптового языка – Python.

Также в арсенале веб — приложений для NAS Thecus присутствуют различные системы управления контентом, такие как WordPress, Joomla, Drupal, что позволяет вам в кратчайшие сроки создавать красивые и качественные сайты, практически не владея навыками программирования. Это достигается за счет существования огромного количества шаблонов и различных модулей для данных систем. Более подробную информацию вы сможете получить на официальных сайтах производителей.

В качестве демонстрации возможностей обновим созданный нами сайт на базе CMS WordPress. Для своей работы данная система управления требует наличия базы данных.

В центре приложений Thecus содержатся модули CMS WordPress и базы данных MySQL. Установим их.

Далее создадим базу данных «test», с которой будет работать WordPress. По умолчанию настроенной базы данных будет вполне достаточно для использования в наших целях.

Затем переходим к приложению WordPress, где нам предложат произвести первые настройки и окончательно доустановить приложение. Здесь нам необходимо указать имя базы данных, имя пользователя и пароль имеющего доступ к базе, а также хост, на котором расположен MySQL.

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

На этом все настройки завершены, посмотреть, как же выглядит теперь сайт, и начать его наполнять, можно обратившись по адресу www.mysite.ru:8181.


Завершение настроек

Таким образом, нам удалось развернуть на сетевом хранилище полноценный веб-сервер.

Смотрите обзоры, тестирования и свежие новости на сайте Thecus!

Веб-сервер настроен неправильно — Visual Studio (Windows)

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Область применения:Visual StudioVisual Studio для Mac Visual Studio Code

После выполнения описанных здесь шагов по устранению проблемы может потребоваться перезапустить IIS перед новой попыткой отладки. Для этого откройте командную строку с правами администратора и введите

iisreset.

Проблему можно устранить следующим способом.

  1. Если веб-приложение на сервере настроено как сборка выпуска, опубликуйте его повторно как отладочную сборку и убедитесь, что файл web.config содержит debug=true в элементе compilation. Перезапустите IIS и повторите попытку.

    Например, если вы используете профиль публикации для сборки выпуска, измените его на сборку отладки и повторите публикацию. В противном случае атрибут debug во время публикации получит значение false.

  2. (IIS) Проверьте правильность физического пути. В IIS этот параметр можно найти в разделе Основные параметры > Физический путь (или в разделе Расширенные параметры в предыдущих версиях IIS).

    Физический путь может быть неправильным, если веб-приложение было скопировано на другой компьютер, вручную переименовано или перемещено. Перезапустите IIS и повторите попытку.

  3. Если отладка выполняется локально в Visual Studio, убедитесь, что в свойствах выбран правильный сервер. (Откройте Свойства > Интернет > Серверы или Свойства > Отладка в зависимости от типа проекта. Для проекта Web Forms откройте Страницы свойств > Параметры запуска > Сервер.)

    При использовании внешнего (пользовательского) сервера, например IIS, URL-адрес должен быть правильным. В противном случае выберите IIS Express и повторите попытку.

  4. (IIS) Убедитесь, что на сервере установлена правильная версия ASP.NET.

    Описанная проблема может быть вызвана несовпадением версий ASP.NET в IIS и в проекте Visual Studio. Может потребоваться задать версию платформы в web.config. Сведения об установке ASP.NET Core в IIS см. в статье Установка ASP.NET Core в Windows Server или ASP.NET установка ASP.NET в Windows Server. Также см. инструкции по использованию IIS 8. 0 с ASP.NET 3.5 и ASP.NET 4.5 или (для ASP.NET Core) размещению в Windows с IIS.

  5. Если в IIS установлено слишком низкое ограничение maxConnection при большом числе подключений, может потребоваться увеличить лимит подключений.

  • Удаленная отладка ASP.NET на удаленном компьютере IIS
  • Отладка веб-приложений: ошибки и устранение неполадок

Что такое веб-сервер IIS: (Internet Information Services)?

В этом посте мы подробно рассмотрим IIS (Internet Information Services). Мы посмотрим, что он делает и как он работает. Вы узнаете, как включить его в Windows. И после того, как мы установим базовый уровень управления IIS с помощью графического интерфейса, вы увидите, как работать с ним с помощью интерфейса командной строки. Давайте начнем!



Что такое веб-сервер IIS?

Веб-сервер IIS работает на платформе Microsoft .NET в ОС Windows. Хотя можно запустить IIS на Linux и Mac с помощью Mono, это не рекомендуется и, вероятно, будет нестабильно. (Есть и другие варианты, которые я представлю позже). Он универсален и стабилен, и уже много лет широко используется в производстве. Версия 10 самая актуальная. После установки вы увидите эту страницу приветствия в своем браузере. «Терветулоа!»

Но прежде чем мы углубимся в тонкости IIS, давайте начнем с определения веб-сервера в общем смысле.

Что такое веб-сервер?

Интернет хороший. И Интернет не может существовать без веб-серверов. Но что такое веб-сервер? Давайте определим это абстрактно, чтобы у нас был некоторый контекст того, как IIS выполняет эту роль.

Веб-сервер — это процесс для размещения веб-приложений. Веб-сервер позволяет приложению обрабатывать сообщения, поступающие через определенные порты TCP (по умолчанию). Например, порт по умолчанию для HTTP-трафика — 80, а для HTTPS — 443.

Когда вы посещаете веб-сайт в своем браузере, вы обычно не указываете номер порта, если только веб-сервер не настроен на получение трафика через порты, отличные от портов по умолчанию. Посещение http://www.example.com неявно отправит ваш запрос на порт 80. Вы можете указать номер порта, если хотите http://www.example.com:80, и https://www.example.com:443 для TLS (Transport Layer Security).

Если предположить, что конфигурация по умолчанию и TLS настроены для вашего веб-приложения, веб-сервер будет получать весь входящий трафик на порты 80 и 443. Что веб-сервер будет делать с трафиком оттуда, зависит. Существует бесчисленное множество вариантов того, как веб-сервер может обрабатывать эти запросы.

Как IIS обрабатывает веб-запросы?

Две основные модели процессов для веб-серверов — либо обрабатывать все запросы в одном потоке, либо создавать новый поток для каждого запроса. Хотя однопоточная модель (например, Node.js) имеет несколько доступных рабочих потоков, она обычно использует их только для определенных видов работы, таких как доступ к файловой системе. Модель потока на запрос, которую использует IIS (и его упрощенный родственник IIS Express), будет захватывать поток из пула потоков для каждого запроса.

Веб-серверы обычно обрабатывают запросы, используя шаблон запрос-ответ. Клиент отправляет запрос и получает ответ, если все идет хорошо. Протокол HTTP является распространенным выбором при общении между клиентом и веб-сервером через Интернет.

Функции

IIS имеет множество функций. Чаще всего IIS используется для размещения веб-приложений ASP.NET и статических веб-сайтов. Его также можно использовать в качестве FTP-сервера, размещать службы WCF и расширять для размещения веб-приложений, созданных на других платформах, таких как PHP.

Существуют встроенные параметры проверки подлинности, такие как базовая, ASP.NET и проверка подлинности Windows. Последнее полезно, если у вас есть среда Windows Active Directory — пользователи могут автоматически входить в веб-приложения, используя свою учетную запись домена. Другие встроенные функции безопасности включают управление сертификатами TLS и привязку для включения HTTPS и SFTP на ваших сайтах, фильтрацию запросов для внесения в белый или черный список трафика, правила авторизации, ведение журнала запросов и богатый набор параметров безопасности для FTP.

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

Неоценимой функцией является удаленное управление. IIS также можно управлять через интерфейс командной строки или с помощью PowerShell. Вы можете написать все, что угодно, и это здорово, если вам нравится сила, которая дает возможность сделать это.

К настоящему моменту у вас должно сложиться хорошее представление о конфигурируемости и универсальности IIS. Вы также должны знать, что его можно расширить для обслуживания (каламбур) многих целей, помимо размещения приложений ASP.NET. Благодаря расширению IIS становится очень универсальным и стабильным веб-сервером для платформы Windows. Давайте посмотрим, как установить IIS в Windows 10. (Тот же процесс применим к Windows 7 и 8.)

Настройка IIS

Назвать это «установкой» было бы слишком. В конце концов, IIS — это функция Windows. Что вам действительно нужно сделать, так это включить эту функцию. В Windows 10 вы можете нажать клавишу Windows и ввести «turn win». Вы должны увидеть «Включение или отключение функций Windows».

Выберите это, чтобы открыть диалоговое окно «Функции Windows». Отсюда вы можете включить всевозможные дополнительные функции, включая PowerShell 2.0, глубокое дерево каталогов параметров для служб IIS и подсистему для Linux. (Должен сказать, что последнее мне пригодилось много раз, например, когда приложение Node имеет несколько сценариев оболочки как часть сборки npm).

Информационные службы Интернета (IIS) — это то, что нам нужно!

Просто щелкнув по нему, вы получите хорошую отправную точку. Однако вы можете захотеть копнуть глубже. World Wide Web Services > Application Development Features — здесь вы включаете ASP.NET, CGI и протокол WebSocket. Вы всегда можете вернуться к этому, если вам нужно внести коррективы.

Чтобы включить IIS на Windows Server, вы можете использовать PowerShell или диспетчер сервера для установки «веб-роли (IIS)». Подробнее см. в этом пошаговом руководстве.

Выбрав все необходимые функции IIS, нажмите кнопку «ОК» и отправляйтесь за чашечкой свежего кофе. После завершения установки вы можете перейти к графическому интерфейсу IIS, введя «IIS» в поиске Windows или запустив «inetmgr».

Графический интерфейс

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

Прежде всего, есть три панели. Слева есть подключенные серверы. (Вы также можете подключаться к удаленным серверам.) На средней панели вы найдете все функции, такие как безопасность приложений, ведение журнала, фильтрация и перенаправление. Или, когда вы выберете «Просмотр содержимого», вместо этого вы увидите содержимое здесь посередине. Справа находится панель действий. Это меняется в зависимости от выбранного контекста.

Я не знаю, зачем там эта маленькая дополнительная иконка внизу справа, но вы также можете изменить размер окна внизу.

СОВЕТ: вы можете щелкнуть правой кнопкой мыши большинство значков и использовать контекстное меню для выполнения наиболее распространенных действий.

Если вы развернете «соединение» на панели подключений, первое, что вы должны увидеть, это «Пулы приложений», а затем «Сайты». Мы собираемся сосредоточиться на них в следующих двух разделах.

Пулы приложений… Что это такое и как они работают?

Вот пулы приложений, настроенные по умолчанию в IIS. Как видите, есть и комбинации v2.0 и v4.0, и классические и интегрированные.

Интегрированный конвейер отличается от классического конвейера тем, что ASP.NET интегрирован в конвейер запросов IIS. В классическом режиме запросы должны были проходить через один конвейер для IIS и другой для ASP.NET. Интегрированный режим был предпочтительным с тех пор, как IIS 7 был выпущен с Windows Server 2008 и Vista. Не используйте классику, если в этом нет необходимости. То же самое касается версии 2.0. Они предназначены только для устаревшей поддержки. На самом деле, если вам не нужны эти пулы приложений, вы можете просто удалить их. Нам не нужно, чтобы всякая дрянь висела вокруг!

В одном пуле приложений одновременно может быть запущено от нуля до многих рабочих процессов (w3wp.exe). Рабочие процессы запускают экземпляры вашего приложения.

Создание пулов приложений

На панели «Действия» в правой части окна IIS нажмите «Добавить пул приложений…», чтобы открыть диалоговое окно. Это довольно просто. Обычно вы можете просто ввести имя и нажать «ввод» или нажать «ОК».

Вы также можете добавить пул приложений, щелкнув правой кнопкой мыши узел «Пулы приложений» на панели «Подключения». Предыдущий совет уже доказал свою ценность!

Пользователи пула приложений

IIS создает виртуального пользователя для каждого пула приложений (общая номенклатура для пула приложений). Эти рабочие процессы по умолчанию запускаются от имени виртуального пользователя пула приложений. Они могут работать от имени другого пользователя (например, учетной записи домена), если им нужны специальные разрешения.

Несмотря на то, что я удалил пулы приложений с сервера, виртуальные пользователи продолжают жить!

Эти виртуальные пользователи по-прежнему получают свои собственные стандартные папки, такие как «Рабочий стол», «Музыка» и «Изображения». Они не занимают так много места (110 МБ), но после удаления пула приложений эти пользовательские папки становятся бесполезными и могут быть удалены.

Повторное использование пула приложений

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

Какие процессы используют память в вашем процессе? Все в стеке и куче — статические переменные и свойства, все в кеше памяти, любые объекты, на которые ссылается другой объект, любые блоки памяти, ожидающие сборки мусора, вы получаете картину.

Вы можете выбрать, какие события вы хотите регистрировать (или не регистрировать). Как видите, не все параметры показаны в предыдущем диалоговом окне — «События перезапуска во время выполнения» не настраиваются. Это не совсем так.

Перезапуск запускает новый процесс, а затем останавливает текущий процесс. Новый процесс, как и следовало ожидать, будет иметь новый PID. Вы можете изменить это поведение, а также другое поведение повторного использования в «Дополнительных настройках…». На самом деле, вы можете отредактировать любую из конфигураций утилизации в этом меню. Диалог «Переработка…» в этом отношении излишен. Однако здесь вы можете отключить повторное использование изменений конфигурации. Хотя вы, наверное, не хотите. Ваше работающее приложение не будет получать обновления конфигурации.

Обратите внимание, что «перекрывающаяся переработка» подразумевает, что возможно иметь более одного экземпляра приложения. Вы должны отключить это, только если ваше приложение требует этого. Перекрывающийся повторный цикл предотвращает сбои, которые могли бы произойти, если бы повторный цикл ждал, пока текущий процесс истощит запросы, прежде чем запускать новый процесс. Другими словами, никакие новые запросы не будут обрабатываться до тех пор, пока не будут выполнены текущие запросы или не истечет настраиваемый период ожидания (по умолчанию 90 секунд).

Расширенная конфигурация

Слишком много конфигураций пула приложений, чтобы подробно повторять их в этом посте. На данный момент будет достаточно краткого обзора. Я быстро расскажу о каждой из областей «Дополнительных настроек», как показано ниже.

  • Настройка «Общие» позволит вам
    • Изменить версии .NET CLR
    • Разрешить 32-разрядные приложения
    • Изменить режим конвейера
    • Установить длину очереди (по умолчанию 1000 запросов)
    • Настроить на постоянный запуск или по требованию
  • Опция «ЦП» охватывает
    • Дросселирование
    • Привязка процессора
  • «Модель процесса» позволит вам выбрать настройки для
    • Личность
    • Тайм-аут простоя
    • Максимальное количество рабочих процессов
    • Мониторинг работоспособности (вы должны отключить это локально для отладки, потому что остановленный отладчик не будет отвечать на эхо-запрос)
  • «Отключение процессов» полезно для отладки не отвечающих процессов
  • «Защита от быстрого сбоя» удобна, когда вы хотите настроить реакцию балансировщика нагрузки на сбои

Сайты

«Сайты» — это узел рядом с «Пулы приложений» в узле сервера диспетчера IIS. Именно здесь вы можете добавлять веб-сайты и FTP-сайты (если они установлены) и управлять ими. В то время как пулы приложений имеют диалоговое окно расширенных настроек, сайты имеют гораздо больше параметров конфигурации! Сайты имеют множество функций, каждая из которых имеет свои собственные настройки.

Эти функции относятся к трем заголовкам в диспетчере IIS:

  • ASP.NET (если он у вас установлен)
  • ИИС
  • Менеджмент

Контекстное меню

Вы можете переключаться между «Функциями» и «Содержимым», когда у вас выбран сайт. Вы можете щелкнуть сайт правой кнопкой мыши и открыть папку из контекстного меню, выбрав «Исследовать». Есть и другие вещи, которые вы можете сделать из этого контекстного меню, например, права на редактирование.

На самом деле это просто вызывает свойства папки сайта. Оттуда вам нужно будет перейти на вкладку «Безопасность», чтобы фактически изменить разрешения.

Как и в Windows, существует несколько других способов редактирования разрешений. Дополнительные сведения о том, как установить права доступа к папкам, см. на ваших любимых справочных сайтах Windows.

Вы можете выполнить несколько общих задач из контекстного меню. Внутри пункта «Управление веб-сайтом» вы можете запускать и останавливать веб-сайт, открывать его в браузере и переходить к дополнительным настройкам. Мы определенно хотим взглянуть на них, но сначала давайте поговорим о том, что вы увидите, когда выберете «Редактировать привязки…», который также доступен на панели «Действие» как «Привязки…».

Bindings

Вам потребуется добавить привязку к сайту в диалоговом окне «Bindings…», если вы включаете HTTPS для своего сайта. Там же можно указать имя хоста и номера портов. Если у вас есть дополнительные привязки для вашего сайта, вы также можете добавить их сюда. Возможно, вы используете привязки net.tcp или net.pipe (если вы добавили функции на сервер и включили их для сайта). Или вы можете установить IP-адрес здесь.

Можно запустить несколько сайтов, прослушивающих один и тот же порт. Для этого вы будете использовать разные имена хостов. Например, вы можете связать admin.example.com с вашим сайтом администратора, а blog.example.com — с вашим блогом. Весь трафик example.com будет направляться на один и тот же IP-адрес (балансировщик нагрузки/сервер), но IIS будет использовать заголовок хоста для направления трафика на соответствующий сайт. Они также полезны для приложений с белой этикеткой: acme.example.com, foo.example.com, bar.example.com.

Основные настройки

«Основные настройки…» — это то же самое диалоговое окно, которое появляется при первой настройке сайта. Вам, вероятно, не понадобится туда заходить, если только вы не хотите изменить пул приложений или местоположение сайта или если вы хотите подключиться как другой пользователь, а не как IUSR (сквозной доступ). Если вам нужно использовать учетную запись службы для доступа к каталогу сайта, вы можете выбрать «Подключиться как…» в диалоговом окне «Редактировать сайт».

Примечание: вам следует позаботиться о защите всех каталогов, которые вы используете в IIS. Вам будет полезно прочитать о том, как защищен каталог inetpub по умолчанию.

Дочерние сайты и виртуальные каталоги

Вы можете размещать несколько приложений и виртуальных каталогов на одном сайте. Приложения могут работать в своих собственных пулах приложений, а виртуальные каталоги — нет. Как показано ниже, я настроил приложение администратора и виртуальный каталог блога на Site2. Доступ к ним можно получить с помощью http://localhost/admin и http://localhost/blog. Оба ответят встроенными страницами ошибок, если в каталогах нет чего-либо.

Исходные каталоги для подприложений и виртуальных каталогов не обязательно должны быть подкаталогами родительского сайта. Вы можете хранить эти каталоги где угодно. Вы можете сопоставить некоторые общие веб-ресурсы (изображения или JS-файлы) с относительным путем для нескольких сайтов. Виртуальные каталоги идеально подходят для этого.

Документы по умолчанию и ошибки

Когда пользователь посещает корень вашего сайта (www. example.com/), ему будет представлен документ по умолчанию. Значения по умолчанию показаны ниже. Вы можете добавлять свои собственные документы, удалять документы или вообще отключать их. Если вы отключите их, пользователь получит уродливый экран с ошибкой 403, если вы не дали разрешение на просмотр содержимого папки (не рекомендуется). Лучше всего иметь документ по умолчанию.

Я поместил индексный документ в каждый каталог: сайт, приложение и виртуальный каталог.

  • Зона 2
    • Админ
      • index.html
    • Блог
      • index.html
    • index.html
  • http://localhost/ загрузит документ по умолчанию на Site2/index.html
  • http://localhost/admin/ загрузит документ по умолчанию в Site2/Admin/index.html
  • http://localhost/blog/ загрузит документ по умолчанию в Site2/Blog/index.html

Если вы беспокоитесь о том, что IIS будет занимать память и ЦП на вашем компьютере, не беспокойтесь. Если рабочие процессы не запущены (и не обрабатывают запросы с интенсивной обработкой), он простаивает. Если вы наблюдаете высокую загрузку ЦП, это руководство по устранению неполадок может помочь, если вы используете ASP.NET.

Интерфейс командной строки и удаленное управление

AppCmd.exe

AppCmd ​​— это встроенный инструмент командной строки для настройки и управления IIS. Вы можете использовать его для создания сайтов и пулов приложений, связывания виртуальных каталогов и редактирования конфигураций. Давайте посмотрим на несколько вещей, которые он может сделать.

Прежде всего, добавьте %systemroot%\system32\inetsrv\ к вашему пути, чтобы вы могли запускать appcmd из командной строки в любом месте.

Запустите командную строку от имени администратора.

 setx ПУТЬ "%ПУТЬ%;  %systemroot%\system32\inetsrv\ "
 

Попробуйте выполнить следующие команды для просмотра appcmd:

  • Запустите appcmd /? чтобы увидеть текст справки
  • Посмотрите, какие приложения работают с приложением списка appcmd
  • Используйте резервную копию списка appcmd для просмотра резервных копий конфигурации IIS

Добавить сайт

 appcmd добавить сайт /name:"Dummy Site" /id:10 /bindings:http/*:81:
 

Теперь снова список приложений. Вы не увидите добавленный вами новый сайт, потому что он не считается приложением. Если вы перейдете к графическому интерфейсу и обновите свои сайты, вы увидите там новый сайт, но он будет сломан. Нам нужно добавить приложение с помощью appcmd.

 appcmd добавить приложение /site.name:"фиктивный сайт" /путь:"/"
 

Это добавит приложение только в корень сайта. Это создаст приложение с именем «Dummy Site/». Нам все еще нужно связать приложение с виртуальным каталогом, а затем указать физический путь.

 appcmd add vdir /app.name:"фиктивный сайт/" путь:"/"
appcmd set vdir "Dummy Site/" /physicalPath:"c:\inetpub\wwwroot"
 

Это подробный способ использования appcmd для создания сайта IIS. Есть более простой способ.

Путь EZ

Вы можете сэкономить много нажатий клавиш при создании сайта, если установите параметр PhysicalPath в первой команде. Это сделает все за один раз:

 appcmd add site /name:"Dummy Site" /id:10 /bindings:http/*:81: /physicalPath:"c:\inetpub\wwwroot"
 

Но знание других команд дает вам лучшее представление о том, как на самом деле работает приложение IIS. В прошлом я использовал appcmd в сценарии после сборки файлов ASP.NET proj, чтобы обеспечить локальную настройку сайта на новых компьютерах разработчиков. Вы также можете сделать резервную копию и восстановить конфигурацию IIS с помощью appcmd.

Развертывание обновлений

Чтобы дать вам еще одно представление об использовании appcmd, попробуйте сделать следующее:

  1. Создайте папку «sites».
  2. Создайте подпапку для каждого сайта.
  3. Разверните версии во вложенных папках каждой из них.
  4. Стадия новых версий.
  5. Используйте appcmd, чтобы обновить сайт для использования новой папки.

При наличии приложения с именем «Hello World», указывающего на C:\Sites\HelloWorld\1.0.0, и новой сборки «1.0.1», которая была размещена в C:\Sites\HelloWorld\1.0.1 , когда пришло время go live, то вы можете использовать следующую команду, чтобы перевернуть сайт на новую версию:

 appcmd set vdir "фиктивный сайт/" /physicalPath:"c:\Sites\HelloWorld\1. 0.1"
appcmd перерабатывает пул приложений /apppool.name:defaultapppool
 

И если вам нужно откатить свой сайт, выполните следующее:

 appcmd set vdir "Dummy Site/" /physicalPath:"c:\Sites\HelloWorld\1.0.0"
appcmd перерабатывает пул приложений /apppool.name:defaultapppool
 


Вот отличное руководство от Microsoft с дополнительной информацией об использовании AppCmd.

Сброс IIS

«iisreset» — это отдельный исполняемый файл, используемый для остановки, запуска, перезапуска IIS или события для перезагрузки компьютера (/REBOOT). Вы можете передать ему параметр «имя компьютера», чтобы он управлял IIS на другом компьютере. Вам нужно будет запустить это как администратор. Многие разработчики и системные администраторы любят использовать это после развертывания, и это тоже неплохая идея!

PowerShell

PowerShell имеет мощный набор инструментов для управления IIS. Вы также можете отправить команду iisreset удаленно, используя Invoke-Command -ComputerName «computername» -ScriptBlock {iisreset}, при условии, что вы разрешаете удаленный вызов произвольных команд на своих серверах — и это, как правило, не очень хорошая идея!

Несмотря на мои собственные опасения по поводу безопасности при отправке произвольных удаленных команд с помощью PowerShell, командлет администрирования IIS действительно полезен для администрирования веб-сервера в стиле DevOps. Вы можете ознакомиться с этой документацией по администрированию IIS с помощью PowerShell, чтобы получить представление о том, что он может делать.

Завершение работы

Несмотря на все функции, конфигурации и команды, которые мы рассмотрели в этом посте, мы только коснулись поверхности. Каждая функция имеет свои собственные конфигурации, и существует множество расширений, которые можно добавить, установив расширение установщика веб-платформы.

И на этом давайте подведем итог этому сообщению и серверу IIS:

iisreset /stop

Но прежде чем мы полностью закончим эту статью, имейте в виду, что существуют такие решения, как Stackify Retrace, которые могут помочь вам с вашим Путешествие по ИИС. Retrace — это решение для управления производительностью приложений (APM), которое может предоставить показатели работоспособности сервера и интеграцию журнала ошибок, что повышает производительность вашего приложения.

Попробуйте бесплатную 14-дневную пробную версию сегодня!

Воспользуйтесь бесплатным профилировщиком кода Stackify Prefix, чтобы писать лучший код на своей рабочей станции. Префикс работает с .NET, Java, PHP, Node.js, Ruby и Python.

  • Об авторе
  • Последние сообщения

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

  • Получение подробных сведений об исключениях с помощью Retrace — 28 октября 2021 г.
  • Учебное пособие по ведению журнала Node.js — 14 мая 2021 г. 4, 2019
  • Улучшите производительность MySQL с помощью этого руководства — 27 ноября 2018 г.

Лучший сервер с автоматическим HTTPS

Caddy — Лучший сервер с автоматическим HTTPS

проект

Caddy 2 — это мощный корпоративный

веб-сервер с открытым исходным кодом с автоматическим HTTPS , написанным на Go

Скачать

затем узнайте, как начать работу

Caddy имеет лицензию Apache 2. 0 с открытым исходным кодом.

Меньше движущихся частей

Caddy упрощает вашу инфраструктуру. Он заботится об обновлении сертификатов TLS, сшивании OCSP, обслуживании статических файлов, обратном проксировании, входе в Kubernetes и многом другом.

Его модульная архитектура означает, что вы можете делать больше с одним статическим двоичным файлом, который компилируется для любой платформы.

Caddy отлично работает в контейнерах, потому что не имеет зависимостей — даже libc. Управляйте Caddy практически где угодно.

Документация

Лучшая в своем классе защита

Caddy — единственный веб-сервер, использующий HTTPS автоматически и по умолчанию.

Caddy автоматически получает и продлевает сертификаты TLS для ваших сайтов. Он даже скрепляет ответы OCSP. Его новые функции управления сертификатами являются наиболее зрелыми и надежными в своем классе.

Написанный на Go, Caddy обеспечивает большую безопасность памяти, чем серверы, написанные на C. Усиленный стек TLS на основе стандартной библиотеки Go обслуживает значительную часть всего интернет-трафика.

Скачать

При поддержке Ардана

Ardan Labs является надежным партнером проекта с открытым исходным кодом Caddy Web Server, предоставляя нашим клиентам поддержку корпоративного уровня.

Вместе мы консультируем и обучаем, а также разрабатываем, устанавливаем и поддерживаем Caddy и его плагины, чтобы обеспечить бесперебойную и эффективную работу вашей инфраструктуры. Свяжитесь с нами, чтобы начать!

Давай поговорим

Файловый сервер и прокси-сервер

Caddy является одновременно гибким и эффективным сервером статических файлов и мощным масштабируемым обратным прокси-сервером.

Используйте его для обслуживания вашего статического сайта сжатием, оценкой шаблона, рендерингом Markdown и многим другим.

Или используйте его в качестве динамического обратного прокси-сервера для любого количества бэкэндов с активными и пассивными проверками работоспособности, балансировкой нагрузки, разрывом цепи, кэшированием и многим другим.

Скачать

Эти команды

готовы к производству . При присвоении доменного имени Caddy будет использовать HTTPS по умолчанию , что обеспечивает и продлевает сертификаты для вас.*

* Требуются общедоступные DNS-записи домена A/AAAA, указывающие на ваш компьютер.

Быстрый, локальный файловый сервер

$ caddy файл-сервер

Общедоступный файловый сервер через HTTPS

$ caddy file-server --domain example.com

Обратный HTTPS-прокси

$ обратный прокси caddy --от example.com --до локального хоста:9000

Запустить сервер с Caddyfile в рабочем каталоге (если есть)

$ Caddy Run

Скачать Документы интерфейса командной строки

Конфигурационный файл, который

читается человеком и легко пишется вручную. Идеально подходит для большинства распространенных и ручных конфигураций.

Локальный файловый сервер с оценкой шаблона

локальный хост шаблоны файл_сервер

Обратный прокси-сервер HTTPS с настраиваемой балансировкой нагрузки и активными проверками работоспособности

example. com # Доменное имя вашего сайта # Балансировка нагрузки между тремя бэкендами с настраиваемыми проверками работоспособности reverse_proxy 10.0.0.1:9000 10.0.0.2:9000 10.0.0.3:9000 { lb_policy random_choose 2 путь_здоровья /ok Health_interval 10 с }

HTTPS-сайт с чистыми URL-адресами, обратным проксированием, сжатием и шаблонами

example.com # Шаблоны придают статическим сайтам некоторые динамические функции. шаблоны # Сжать ответы в соответствии с заголовками Accept-Encoding кодировать gzip zstd # Сделать расширение файла HTML необязательным try_files {путь}.html {путь} # Отправлять запросы API на серверную часть reverse_proxy /api/* локальный хост: 9005 # Обслуживать все остальное из файловой системы файл_сервер

Скачать Caddyfile Документы

Caddy динамически настраивается с помощью

RESTful JSON API 9.0387 . Обновления конфигурации изящные даже в Windows.

Использование JSON дает вам абсолютный контроль над периферией вашей вычислительной платформы и идеально подходит для динамического и автоматизированного развертывания.

Установить новую конфигурацию

ПУБЛИКАЦИЯ /config/ { "Программы": { "http": { "серверы": { "пример": { "слушай": ["127.0.0.1:2080"], "маршруты": [{ "@id": "демо", "справиться": [{ "обработчик": "файл_сервер", "просмотреть": {} }] }] } } } } }

Экспорт текущей конфигурации

ПОЛУЧИТЬ /config/

Изменить только определенную часть конфигурации

ПОЛОЖИТЬ /id/демо/дескриптор/0 {"обработчик": "шаблоны"}

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

Скачать Документация по API Учебник

Безопасность по умолчанию

Caddy — единственный веб-сервер, который по умолчанию использует HTTPS. Защищенный стек TLS с современными протоколами сохраняет конфиденциальность и защищает от MITM-атак.

API конфигурации

В качестве основного режима конфигурации REST API Caddy упрощает автоматизацию и интеграцию с вашими приложениями.

Нет зависимостей

Поскольку Caddy написан на Go, его двоичные файлы полностью автономны и работают на любой платформе, включая контейнеры без libc.

Модульный стек

Верните себе контроль над своим вычислительным преимуществом. Caddy можно расширить всем необходимым с помощью плагинов.

✔ Статические сайты

✔ Динамические сайты

✔ Обратный прокси-сервер

✔ Динамическая конфигурация

✔ Расширяемое ядро ​​

✔ Automagic TLS

Общий

Caddy 2 был специально разработан, чтобы упростить вашу инфраструктуру и дать вам контроль над периферией вашей вычислительной платформы.

Архитектура
Расширяемый

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

Минимальное глобальное состояние

Глобальное состояние распространено на серверах, но, как правило, подвержено ошибкам и является узким местом, поэтому Caddy 2 использует новый дизайн, который ограничивает глобальное состояние.

Легкий

Несмотря на все свои функции, Caddy работает легко и эффективно, с относительно небольшим объемом памяти и высокой пропускной способностью.

Многоядерный

Когда дела идут плохо, Caddy получает больше процессоров. Планировщик Go понимает код Go, а горутины легче, чем системные потоки.

Статический двоичный код

Caddy — это один исполняемый файл без каких-либо зависимостей, даже libc. Буквально просто нужен металл и ядро. Поместите Caddy в свой PATH и запустите его. Выполнено.

Кроссплатформенный

Caddy работает на Windows, macOS, Linux, BSD, Android, Solaris, 32-битных, amd64, ARM, aarch64, mips64… почти на всем, в что компилируется Go.

Конфигурация
Структура JSON

Собственный формат конфигурации Caddy — JSON, поэтому он знаком и хорошо взаимодействует с существующими системами и инструментами.

REST API

Конфигурация Caddy поступает через конечную точку REST в виде единого документа JSON, что делает ее легко программируемой.

Файлы конфигурации Дополнительно

Вы можете использовать файлы конфигурации с интерфейсом командной строки Caddy, который автоматически преобразует их в запросы API.

Адаптеры конфигурации

Принесите свой конфиг! Адаптеры конфигурации переводят различные форматы конфигурации (Caddyfile, TOML, NGINX и т. д.) в собственный JSON Caddy.

Caddyfile

Простой и интуитивно понятный способ настройки вашего сайта. Это не сценарий, и его нетрудно запомнить. Скатывается с пальцев. Вам это очень понравится.

Единая конфигурация

Вся конфигурация содержится в одном документе JSON, поэтому скрытых факторов, влияющих на вашу конфигурацию, меньше.

Частичные обновления

Когда вам нужно внести небольшие изменения, API Caddy позволяет обновить только соответствующие части его конфигурации.

Мелкозернистый контроль

Собственный JSON Caddy предоставляет фактические поля, выделенные в памяти работающим сервером, чтобы дать вам больше контроля.

Экспорт

Вы можете экспортировать активную копию текущей конфигурации Caddy с запросом GET в его API.

Эффективная перезагрузка

Обновления конфигурации точно настроены для повышения эффективности, поэтому вы можете перезагружать конфигурацию десятки раз в секунду.

Изящные перезагрузки

Изменения конфигурации вступают в силу без простоев и закрытия сокетов — даже в Windows.

Проверка конфигурации

Вы можете использовать интерфейс командной строки Caddy для предварительного просмотра и проверки конфигураций перед их применением.

Основные характеристики
Caddyfile

Простой и интуитивно понятный способ настройки вашего сайта. Это не сценарий, и его нетрудно запомнить. Скатывается с пальцев. Вам это очень понравится.

Статические файлы

По умолчанию Caddy будет обслуживать статические файлы в текущем рабочем каталоге. Это так гениально просто и работает быстро.

Динамические сайты

Caddy также можно использовать для обслуживания динамических сайтов с помощью шаблонов, прокси, FastCGI и с помощью плагинов.

Интерфейс командной строки

Настройте работу Caddy с помощью простого кроссплатформенного интерфейса командной строки; особенно хорошо подходит для быстрых одноразовых экземпляров сервера.

Плагины

Caddy можно расширить с помощью плагинов. Все приложения, директивы Caddyfile, обработчики HTTP и другие функции являются плагинами! Их легко написать и компилировать напрямую.

Многоядерный

Когда дела идут плохо, Caddy получает больше процессоров. Планировщик Go понимает код Go, а горутины легче, чем системные потоки. Так что да, это быстро.

Встраиваемый

Пишете другую программу или веб-службу, которая может использовать мощный веб-сервер или обратный прокси-сервер? Caddy можно использовать как библиотеку в вашей программе Go.

Проверка Caddyfile

Caddy может анализировать и проверять ваш Caddyfile, фактически не запуская его.

Журнал процесса

Caddy может вести журнал всех значимых событий, особенно ошибок. Журнал в файл, stdout/stderr, локальный или удаленный системный журнал!

Прокат бревен

Когда файлы журналов становятся большими, Caddy автоматически поворачивает их для экономии места на диске.

Безопасность и конфиденциальность

Главными функциями Caddy являются безопасность и конфиденциальность. Caddy — это первый и единственный веб-сервер, который автоматически и по умолчанию включает HTTPS.

TLS
TLS 1.3

TLS 1.3 — это новейший стандарт безопасности транспорта, который быстрее и безопаснее, чем его предшественники.

Наборы современных шифров

Caddy по умолчанию использует лучшие криптотехнологии, включая AES-GCM, ChaCha и ECC, обеспечивая баланс между безопасностью и совместимостью. Вы можете настроить, какие шифры разрешены.

Безопасность памяти

Caddy — единственный веб-сервер в своем классе, невосприимчивый к таким ошибкам, как Heartbleed и переполнение буфера, поскольку он написан на безопасном для памяти языке Go.

Аутентификация клиента

С помощью аутентификации клиента TLS вы можете настроить Caddy так, чтобы только определенные клиенты могли подключаться к вашей службе.

Закаленный блок

Caddy с гордостью написан на Go, а его стек TLS основан на надежном пакете crypto/tls в стандартной библиотеке Go, которому доверяют крупнейшие в мире распространители контента.

PCI-совместимый

Компании выбирают Caddy, потому что его конфигурация TLS по умолчанию совместима с PCI. Это даже сэкономило некоторым компаниям несколько часов до потери сертификации!

Масштабируемая система хранения

Активы TLS хранятся на диске, но механизм хранения можно заменить для пользовательских реализаций, чтобы вы могли развертывать и координировать парк экземпляров Caddy.

Поворот ключа

Caddy упоминается как единственный веб-сервер, который по умолчанию меняет ключи билетов сеанса TLS. Это помогает сохранить прямую секретность, то есть конфиденциальность посетителей.

Индикация имени сервера

Caddy использует расширение TLS Server Name Indication (SNI), чтобы иметь возможность размещать несколько сайтов на одном интерфейсе. Как и большинство функций, это просто работает.

Перенаправление с HTTP на HTTPS

Автоматическая функция HTTPS Caddy по умолчанию включает для вас перенаправление с HTTP на HTTPS.

Сертификаты
Автоматическое получение

Caddy автоматически получает для вас сертификаты с помощью Let’s Encrypt. Можно использовать любой ACME-совместимый ЦС. Caddy был первым веб-сервером, на котором была реализована эта технология.

Автоматическое продление

Никогда больше не связывайтесь с сертификатами! Сертификаты автоматически продлеваются в фоновом режиме до истечения срока их действия.

Динамическая загрузка сертификата

Caddy — единственный веб-сервер, который может получать сертификаты во время рукопожатия TLS и сразу же их использовать.

Принесите свой

Если вы по-прежнему предпочитаете управлять сертификатами самостоятельно, вы можете передать Caddy свой сертификат и файлы ключей (в формате PEM), как вы привыкли.

Массовая загрузка сертификата

Если вы сами управляете многими сертификатами, вы можете предоставить Caddy целую папку для загрузки сертификатов.

Простые самоподписанные сертификаты

Для облегчения локальной разработки и тестирования Caddy может создавать и управлять самозаверяющими сертификатами для вас без каких-либо хлопот.

Сертификаты SAN

Caddy полностью принимает сертификаты SAN в тех случаях, когда вы управляете своими собственными сертификатами SAN и хотите использовать их вместо них.

Поддержка кластера

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

Масштабируемый

Управление сертификатами Caddy хорошо масштабируется до десятков тысяч сайтов и десятков тысяч сертификатов на экземпляр.

Подстановочные знаки

При необходимости Caddy может получить и обновить для вас подстановочные сертификаты, если у вас есть много связанных поддоменов для обслуживания.

ОССП
Сшивание

Caddy по умолчанию прикрепляет ответы OCSP к каждому подходящему сертификату. Сшивание OCSP Caddy более устойчиво к сбоям в сети, чем другие веб-серверы.

Кэширование

Каждый ответ OCSP кэшируется на диске для сохранения целостности при перезапусках на случай, если ответчик выйдет из строя или сетевое соединение подвергнется атаке.

Обязательный степлер

Caddy можно настроить для получения сертификатов Must-Staple, что требует, чтобы этот сертификат всегда содержал скрепленный ответ OCSP.

Фоновые обновления

В отличие от других веб-серверов, Caddy обновляет ответы OCSP в фоновом режиме, асинхронно с любыми запросами, задолго до истечения срока их действия.

Предварительно утвержденный

Ответ OCSP не будет сшиваться, пока он не будет проверен на достоверность, чтобы убедиться, что клиенты примут его.

Обработка отзывов

Если OCSP обнаружит, что управляемый сертификат подлежит отзыву, Caddy автоматически попытается заменить сертификат.

Протокол ACME
HTTP-вызов

Caddy может решить проблему HTTP для получения сертификатов. Вы также можете настроить Caddy для передачи этих вызовов другим процессам.

Вызов TLS-ALPN

Caddy решает проблему TLS-ALPN, которая возникает на порту 443 и вообще не требует открытия порта 80.

Координация флота

Caddy координирует получение и обновление сертификатов в конфигурациях кластера для вызовов HTTP и TLS-ALPN!

Вызов DNS

Caddy решает проблему DNS, которая не требует открытия каких-либо портов на машине. Есть интеграции для всех основных провайдеров DNS!

Отзыв

Если один из ваших закрытых ключей будет скомпрометирован, вы можете использовать Caddy, чтобы легко отозвать затронутые сертификаты.

Настраиваемый CA

Caddy предназначен для использования с любым ACME-совместимым центром сертификации, который можно настроить с помощью одного флага командной строки.

Устойчивость к сбоям

Caddy является единственным веб-сервером и единственным крупным клиентом ACME, который не был нарушен изменениями и сбоями CA или сбоями респондента OCSP.

HTTP-сервер

HTTP-сервер Caddy обладает широким набором современных функций, высокой производительностью и простотой развертывания.

Возможности сайта
Просмотр каталогов

Список файлов и папок с привлекательным, практичным дизайном Caddy или в соответствии с вашим собственным шаблоном.

Виртуальные хосты

Обслуживайте несколько сайтов с одного и того же IP-адреса с помощью Caddyfile.

Настраиваемая привязка

Вы можете выбрать, к каким сетевым интерфейсам вы привязываете прослушиватель, что дает вам больше контроля над доступом к вашему сайту.

Уценка

Позвольте Caddy отображать ваши файлы Markdown как HTML на лету. Вы можете встроить свой Markdown в шаблон и проанализировать вступительную часть.

Шаблоны

Мощная и улучшенная альтернатива серверным включениям, шаблоны позволяют быстро и легко создавать полудинамические сайты.

Пользовательские страницы ошибок

Показывайте удобные страницы ошибок, когда что-то идет не так, или записывайте сведения об ошибках в браузер для сред разработки.

Регистрация

Кэдди делает подробные записи в соответствии с вашим любимым форматом журнала. Регистрировать ошибки и запросы в файл, stdout/stderr или в локальный или удаленный системный журнал.

Пределы размера запроса

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

Время ожидания

Включение тайм-аутов может быть хорошей идеей, когда ваш сервер может быть подвержен атакам slowloris или вы хотите высвободить ресурсы из медленных сетей.

Веб-протоколы
HTTP/1.1

Caddy по-прежнему широко используется в средах открытого текста, разработки и отладки и имеет надежную поддержку HTTP/1.1.

HTTP/2

Пришло время для более быстрого Интернета. Caddy использует HTTP/2 прямо из коробки. Никаких мыслей не требуется. HTTP/1.1 по-прежнему используется, когда клиенты не поддерживают HTTP/2.

HTTP/3

С черновой версией QUIC, соответствующей стандарту IETF, сайты загружаются быстрее, а соединения не обрываются при переключении сетей.

Веб-сокеты

Caddy поддерживает прямое соединение WebSocket с потоками stdin/stdout локальных программ, которые немного похожи на CGI.

IPv6

Caddy поддерживает как IPv4, так и IPv6. На самом деле, Caddy отлично работает в среде IPv6 без дополнительной настройки.

FastCGI

Надежно обслуживайте свой PHP-сайт за Caddy всего одной простой строкой конфигурации. Вы даже можете указать несколько бэкэндов.

Спецификация HTTP
Базовая аутентификация

Защитите области вашего сайта с помощью базовой аутентификации HTTP. Он прост в использовании и защищен по протоколу HTTPS для большинства целей.

Перенаправления

Caddy может выполнять перенаправления HTTP с любым кодом состояния 3xx, включая перенаправления с использованием тегов , если вы предпочитаете.

Заголовки

Настройте заголовки ответов, чтобы некоторые заголовки были удалены или добавлены другие.

Обратный прокси-сервер
Базовое проксирование

Caddy может действовать как обратный прокси-сервер для HTTP-запросов. Вы также можете проксировать прозрачно (сохранить исходный заголовок узла) с помощью одной строки конфигурации.

Балансировка нагрузки

Прокси для нескольких бэкэндов с использованием политики балансировки нагрузки по вашему выбору: случайный выбор, наименьшее количество подключений, циклический перебор, IP-хеш или заголовок.

Терминация SSL

Caddy часто используется в качестве терминатора TLS из-за его мощных функций TLS.

Прокси-сервер WebSocket

Промежуточное программное обеспечение прокси-сервера Caddy также способно проксировать соединения веб-сокетов с бэкэндами.

Медицинские осмотры

Caddy помечает проблемные серверные части как неработоспособные, и вы можете настроить пути проверки работоспособности, интервалы и тайм-ауты для оптимальной производительности.

Повторные попытки

Когда запрос к серверной части не может подключиться, Caddy будет пытаться выполнить запрос с другими серверными частями, пока тот, который находится в сети, не примет соединение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *