Настройки Apache mod_mono для нескольких приложений MVC без редактирования конфигурации apache

Я настраиваю моносервер, используя Apache и mod_mono на Raspberry PI 3, на котором работает Raspbian Jesse. У меня уже установлены и работают нормально mono и mod_mono.

Это моя желаемая структура папок

  • /var/www/html
    • App1
    • Приложение2

Я хотел бы настроить Apache так, чтобы я мог просто скопировать новое приложение .NET mvc3 в папку непосредственно под /var/www/html (т.е. /var/www/html/App1), и каждое из этих приложений будет автоматически запускаться работать как приложения MVC3 без необходимости добавлять запись в конфигурацию apache для каждого приложения.

MonoAutoApplication enabled в этом случае не работает, потому что я не обслуживаю страницы .aspx (или любой другой файл .net), а скорее это приложения MVC.

Преимущество этого подхода в том, что я могу хранить этот файл конфигурации с каждым приложением в системе контроля версий. Затем при запуске сервера с нуля требуется меньше настроек при развертывании приложений.

Любые идеи о том, как справиться с этим?


person TwitchBronBron    schedule 01.06.2016    source источник


Ответы (1)


Здесь делается несколько предположений.

  • Приложения будут публиковаться только непосредственно под /var/www/html. Например, /var/www/html/app1, /var/www/html/app2
  • Каждое приложение предоставит файл mod_mono.conf в своей корневой папке. Например, /var/www/html/app1/mod_mono.conf
  • В mod_mono.conf для каждого приложения должен быть указан абсолютный путь к приложению.
  • Сервер Apache необходимо перезагрузить после развертывания нового приложения. На самом деле нет способа обойти это.

В конце apache2.conf добавьте следующее:

/etc/apache2/apache2.conf

#define the default mono server
MonoServerPath default /usr/bin/mod-mono-server4
#include all config files from all mono apps
IncludeOptional "/var/www/html/*/mod_mono.con[f]"
#prevent web access to mod_mono.conf files
<Files ~ "mod_mono.conf">
    Order allow,deny
    Deny from all
</Files>

а потом для каждого приложения добавить этот mod_mono.conf, соответственно изменив путь к папке /var/www/html/app1/mod_mono.conf

AddMonoApplications default "/app1:/var/www/html/app1"
<Location /app1>
    SetHandler mono
</Location>
person TwitchBronBron    schedule 01.06.2016