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

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

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

  • / Var / WWW / HTML
    • App1
    • App2

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

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

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

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

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>
Другие вопросы по тегам