Размещать несколько основных веб-приложений asp.net на одном сервере Linux - PullRequest
0 голосов
/ 24 января 2019

Я новичок в ядре asp.net.Я прочитал весь официальный документ Microsoft и могу разместить приложение на сервере Linux Apache.Но я хочу разместить несколько основных веб-приложений asp.net под одним IP-адресом.Пожалуйста, у всех есть сообщение о решении здесь.

Заранее спасибо

1 Ответ

0 голосов
/ 25 января 2019

Официальный документ показывает нам способ использования Apache в качестве обратного прокси-сервера:

<VirtualHost *:*>
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
    ServerName www.example.com
    ServerAlias *.example.com
    ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
    CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
</VirtualHost>

По сути, эта конфигурация заставит Apache прослушивать *:80 и прокси-сервер любого HttpRequest, чейServerName равно www.example.com до http://127.0.0.1:5000/.

Вот как работает Apache, используемый в качестве прокси для ASP.NET Core.

Что касается вашего вопроса, предположим, у вас два asp.веб-приложения net core:

  1. первое называется WebApp1 и прослушивает 0.0.0.0:5000.
  2. , а другой называется WebApp2 и слушает 0.0.0.0:6000.

Ваш сервер Apache прослушивает 0.0.0.0:80.Для любого входящего http-запроса

  • , когда Host равен www.webapp1.org, укажите этот запрос на 0.0.0.0:5000
  • , когда Host равен www.webapp2.org, прокси-запрос на этот запрос0.0.0.0:6000

Таким образом, вы можете добавить два прокси:

прокси 1:

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
    ServerName www.webapp1.org
    ServerAlias *.webapp1.org
    ErrorLog ${APACHE_LOG_DIR}webapp1-error.log
    CustomLog ${APACHE_LOG_DIR}webapp1-access.log common
</VirtualHost>

прокси 2:

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:6000/
    ProxyPassReverse / http://127.0.0.1:6000/
    ServerName www.webapp2.org
    ServerAlias *.webapp2.org
    ErrorLog ${APACHE_LOG_DIR}webapp1-error.log
    CustomLog ${APACHE_LOG_DIR}webapp2-access.log common
</VirtualHost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...