Как модель хостинга Asp.Net используется в веб-приложениях?



Ядро Asp.net значительно улучшило модель хостинга. В более ранних версиях предполагалось размещать веб-приложения Asp.net Core через прокси-веб-серверы, такие как IIS в Windows, Apache или NGINX. Однако новое ядро ​​Asp.net 2.2 позволяет напрямую размещать приложение Asp.net в Windows в IIS без требований к внешнему серверу. Таким образом, это увеличивает пропускную способность с помощью простого механизма In-Process хостинга.

Модели хостинга в ASP.NET Core

ASP.NET - это технология от Microsoft, которая позволяет создавать динамические страницы на стороне веб -сервера.

Хостинг ASP.NET полностью интегрирован с программным обеспечением на основе Windows, а также с самой операционной системой. Эта технология считается довольно безопасной и надежной, а также прост в использовании. Он используется в основном для разработки продуктов в приложении.

Модели хостинга в ASP.NET Core бывают двух типов: внутрипроцессный хостинг и внепроцессный хостинг. До ASP.Net Core 2.2 существовала только одна модель хостинга - это хостинг вне процесса, но из-за производительности в версиях ядра 2.2 для Asp.net появилась модель внутрипроцессного хостинга.

Внедрение внутрипроцессной модели хостинга в ядре Asp.net

Предыдущие версии ASP.NET Core требовали одну для размещения приложения в IIS с использованием модели размещения вне процесса, которая работает через IIS. Запросы, попадающие в IIS или IIS Express, направляются в веб-приложение ASP.NET Core, работающее на веб-сервере Kestrel. Однако с новым внутрипроцессным хостингом для хостинга используется только один сервер, такой как IIS, Nginx или Linux. Это означает, что вместо пересылки запросов в Kestrel новая реализация веб-сервера (IISHttpServer) размещается непосредственно в пуле приложений IIS, который будет обслуживать запрос. В ASP.NET Core 3.1 модель внутрипроцессного хостинга используется в качестве модели по умолчанию при разработке нового приложения с использованием существующего шаблона.

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

Модель хостинга вне процесса

В моделях хостинга вне процесса вы можете использовать сервер Kestrel непосредственно в качестве сервера, обращенного к запросу пользователя, или вы можете развернуть приложение в IIS, который будет выступать в качестве прокси-сервера и отправлять запросы на внутренний сервер Kestrel. В этой модели хостинга у вас есть два варианта хостинга, то есть с использованием Kestrel и Proxy Server:

1. Использование пустельги

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

2. Использование прокси-сервера

Из-за ограничений сервера Kestrel его нельзя использовать во всех приложениях. В таких случаях нужно использовать мощные серверы, такие как IIS, Apache или NGINX. Таким образом, в этой ситуации этот сервер действует как резервный прокси-сервер, который перенаправляет каждый запрос на внутренний сервер Kestrel, на котором выполняется приложение. Здесь работают два сервера, такие как IIS и Kestrel.

Эта модель хостинга является моделью по умолчанию для всех приложений, реализованных в более ранней версии .NET Core 2.2. Одним из ограничений использования этого типа, таких как замедление производительности.

Последние мысли:

Согласно фактам, большинство компаний веб-разработки ASP.Net, безусловно, хотят использовать модель хостинга In-Process. Так как он потребляет меньше ресурсов и обеспечивает хорошую производительность. Поскольку для Kestrel не требуется дополнительный процесс, а также избегается дополнительная связь между IIS и Kestrel. Однако в некоторых случаях может потребоваться выбрать хостинг вне процесса, например, в случае размещения одного и того же веб-приложения в Windows и Linux. Говоря о размещении приложения на других платформах, Kestrel является основным механизмом, используемым для обработки HTTP-запросов на всех платформах.

Однако лучше всего использовать In-Process на IIS, если у вас нет особых требований к Kestrel.

Основная фотография предоставлена: фотография Фарзада Назифи на Unsplash




Комментарии (0)

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