Изоляция процессов
API HTTP-сервера версии 2.0 позволяет создавать более безопасную и надежную службу, изолируя рабочие процессы, обслуживающие запросы в очереди запросов. Очередь запросов создается и администрируется процессом контроллера или создателя, который строго управляет доступом к ней. Процесс контроллера запускает один или несколько отдельных рабочих процессов, которые выполняют операции ввода-вывода в очереди запросов. Процесс контроллера выполняется с правами администратора и настраивает очередь запросов, а рабочая роль с низким уровнем привилегий обрабатывает запросы на доступ и обслуживание из очереди запросов. Эта архитектура поддерживает политику приложений, работающих с минимальными привилегиями, и снижает вероятность уязвимостей системы безопасности, вводимых сторонним кодом, которые могут выполняться в рабочих процессах.
Доступ к очереди запросов предоставляется, когда процесс контроллера создает очередь запросов с именем и списком контроль доступа (ACL). Веб-приложения, включенные в список управления доступом, могут открывать существующую очередь запросов по имени. Процесс создания также может быть рабочим процессом в очереди запросов. Дополнительные сведения см. в разделе Именованной очереди запросов . На следующей схеме показана архитектура типичного приложения HTTP, работающего с моделью рабочего процесса:
Отдельные рабочие процессы в приложении изолированы от других рабочих процессов, и процесс контроллера может отслеживать работоспособность каждого рабочего процесса. Процесс контроллера изолирован от рабочих процессов. Ниже описаны компоненты архитектуры HTTP.
- Процесс создателя или контроллера. Процесс контроллера может выполняться с правами администратора или без нее для мониторинга работоспособности и настройки службы. Процесс контроллера обычно создает один сеанс сервера для службы и определяет группы URL-адресов в сеансе сервера. Группа URL-адресов, с которой связан определенный URL-адрес, определяет, какая очередь запросов обслуживает пространство имен, обозначенное конкретным URL-адресом. Процесс контроллера также создает очередь запросов и запускает рабочие процессы, которые могут получить доступ к очереди запросов.
- Рабочий процесс. Рабочие процессы, запущенные процессом контроллера, выполняют операции ввода-вывода в очереди запросов, связанной с обслуживаемыми URL-адресами. Веб-приложению предоставляется доступ к очереди запросов процессом контроллера в ACL при создании очереди запросов. Если веб-приложение не является процессом создателя, оно не управляет службой и не настраивает очередь запросов. Процесс контроллера передает имя очереди запросов рабочему процессу, и рабочий процесс открывает очередь запросов по имени. Рабочие процессы могут загружать сторонние веб-приложения без уязвимостей системы безопасности в других частях приложения.
- Очередь запросов. Очередь запросов создается и настраивается процессом контроллера. Контроллер указывает процессы, которым разрешен доступ к очереди запросов в ACL при создании очереди запросов.
- Сеанс сервера. Процесс контроллера обычно создает и настраивает один сеанс сервера для приложения. Сеанс сервера поддерживает свойства конфигурации для всего приложения. Группы URL-адресов создаются в сеансе сервера процессом контроллера.
- Группа URL-адресов. Процесс контроллера создает группы URL-адресов в сеансе сервера и настраивает группу URL-адресов независимо от сеанса сервера. URL-адреса добавляются в группу процессом контроллера. Запросы направляются в очередь запросов, с которым связана группа URL-адресов.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по