Як основна модель хостингу 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 Core мають два типи, тобто хостинг в процесі та хостинг поза процесом. До ASP.Net Core 2.2 існувала лише одна хостингова модель - хостинг поза процесом, але завдяки продуктивності впроваджена модель хостингу в процесорі в базовій версії Asp.net 2.2.

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

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

Мабуть, ця модель хостингу має значно високу пропускну здатність та підвищення продуктивності порівняно з хостинговою моделлю Out-Of-Process.

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

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

1. Використання Kestrel

У цьому 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)

Залишити коментар