Настройки 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>