2017-02-20 26 views
4

Я создаю несколько веб-сайтов в ядре asp.net (несколько приложений для пользовательского интерфейса и приложение для веб-приложений). Все они работают вместе, используя веб-api. Для моего вопроса мы будем называть их App1, App2 и App3. Я размещаю свои сайты в IIS.Как разместить несколько приложений .NET Core под тем же адресом

Как правило, в старой .net Framework (4.5.1) у меня будет один веб-сайт в IIS с несколькими веб-приложениями для размещения нескольких приложений. Как так:

  • WEBSITE1 - на порту 443

    • App1

    • app2

    • app3

Если веб-сайт (WEBSITE1) работает на порту 443 (с использованием SSL-сертификата), что означает, что все приложения доступны через один домен URL следующим образом:

С другим именем приложения s в конце URL-адреса, чтобы идентифицировать их.

При размещении новых приложений asp.NET Core я также размещаю в IIS и следуя документации по развертыванию веб-сайта asp.NET Core, я размещаю каждое веб-приложение .NET Core на другом сайте в IIS.

Поскольку у меня есть одно доменное имя для всех моих сайтов, например https://www.example.com (я использую сертификат SSL), я должен предоставить другим сайтам разные порты.Так что я в конечном итоге с чем-то вроде этого:

  • WEBSITE1 - работает на порту 443

  • WEBSITE2 - на порту 444

  • WEBSITE3 - на порту 445

Все эти приложения затем доступны через эти URL-адреса домена:

Как разместить asp.NET основные приложения все под один сайт, как различные "приложения", то есть они решают к то же имя домена url (https://www.example.com и имя приложения с косой чертой идентифицирует, какое приложение мы хотим)? ИЛИ, альтернативно, как мне взять то, что я настроил сейчас, с портами и маршрутизировать их все, поэтому App1 по умолчанию является example.com/, App 2 - example.com/app2/, а приложение 3 - example.com/app3/?

Я рассматриваю это развертывание .NET Core совершенно неправильно?

Заранее благодарим за любые указатели!

+0

Вы пробовали WebListener в Windows или обратном прокси (IIS (windwos) или nginx (linux))? – Tseng

+0

Я не @Tseng - я никогда раньше не использовал это раньше, но сейчас я запустил быстрый google! –

ответ

1

Вы можете использовать обратный прокси для обслуживания нескольких приложений ASP Net Core в одном домене.
Использование IIS Я не совсем уверен, но вам нужно установить URL Rewrite, а затем следовать за documentation, предоставленным Microsoft (также должно быть полезно this one).
Вы также можете использовать nginx с помощью location и proxy_pass следующим образом:

... 
Some nginx Configuration 
location /App1 { 
     proxy_pass http://127.0.0.1:443; 
    } 
location /App2 { 
     proxy_pass http://127.0.0.1:444; 
    } 
location /App3 { 
     proxy_pass http://127.0.0.1:445; 
    } 
Other configurations... 

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

1

Для IIS вы можете использовать маршрутизацию запросов приложений (ARR), которые объединяются с модулем URL rewrite для запроса маршрутизации в каждой ассоциации между портом URL. Он используется для создания аналогичного прокси-сервера, такого как Nginx, и указывает на соответствующий порт, следующий за каждым шаблоном URL-адреса. Вы можете увидеть образец с ARR ниже:

https://www.iis.net/learn/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

1

Попробуйте: В файле Web.config каждое приложение имеет другое название: <add name="herenewappname" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />

0

Вам не нужно, чтобы создать сайт для каждого приложение, вы можете разместить его как прежде, как веб-приложения на одном сайте. Единственное, что вам нужно сделать, это выбрать неуправляемый пул приложений для ваших приложений .Net Core, вот и все.Так это работает: https://domain/app1 и https://domain/app2 и вам нужно только 1 сертификат для веб-сервера

Кроме того, вы можете создать сайт для каждого приложения, то вам необходимо суб-домен для каждого приложения, как https://app1.domain и как https://app2.domain В в этом случае все поддомены должны указывать на один и тот же IP-адрес (если ваш сервер имеет только один), и вам нужно настроить привязки для каждого сайта \ приложения в его домене. Вы должны привязать все сайты к одному и тому же порту (443 или 80).

Для SSL в конфигурации нескольких сайтов, если у вас есть IIS 7, вам необходимо иметь подстановочный знак. В IIS 8 и выше вы можете использовать функцию указания имени сервера и иметь отдельный сертификат для каждого сайта, однако я рекомендую вам использовать подстановочный сертификат, так как SNI является новым и может не поддерживаться некоторыми браузерами.

В обоих случаях вам необходимо настроить хостинг для Windows Server Microsoft's download center