Проект mono позволяет реализовать платформу .NET Framework на системах Linux. В данной инструкции мы разберем процесс его установки на Ubuntu.
Установку выполняем командой:
apt-get install mono-complete mono-xsp4 asp.net-examples
* пакет mono-complete содержит все возможности Mono; mono-xsp4 предоставляет поддержку ASP.NET; asp.net-examples — содержит примеры скриптов ASP и скрипт для автоматической конфигурации веб-приложения.
Разрешаем автозапуск и стартуем сервис:
systemctl enable mono-xsp4
systemctl start mono-xsp4
Если мы используем брандмауэр, добавим правило:
iptables -I INPUT 1 -p tcp -m tcp –dport 8084 -j ACCEPT
* где 8084 — порт, по умолчанию для mono-xsp4.
Сохраняем правила iptables любым способом, например:
netfilter-persistent save
* если данная команда вернет ошибку, устанавливаем iptables-persistent командой apt-get install iptables-persistent.
Для проверки работы сервиса открываем браузер и переходим по адресу http://<IP-адрес сервера>:8084/samples/ — мы должны увидеть страницу «Welcome to Mono XSP»:
* не обращаем внимания на некрасивый вид страницы и отсутствующее изображение — это происходит по причине того, что демо верстка немного не коррелирует с настройкой веб-приложения.
Рассмотрим процесс настройки mono с веб-серверами NGINX и Apache2 путем проксирования запросов.
Открываем файл настройки виртуального домена по умолчанию:
vi /etc/nginx/sites-enabled/default
Находим опцию location / и приводим ее к виду:
location / { proxy_pass http://127.0.0.1:8084/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
* где proxy_pass перенаправляет все запросы на внутренний сервер mono-xsp4.
Проверяем корректность настроек:
… и перезапускаем nginx:
systemctl restart nginx
Теперь открываем браузер и заходим по адресу http://<IP-адрес сервера>/samples/ (без указания порта). Мы должны увидеть веб-приложение, настроенное на mono.
Включаем модули для проксирования:
a2enmod proxy proxy_http
* где proxy — главный модель для перенаправления запросов; proxy_http — проксирование HTTP.
Настраиваем виртуальный домен с сайтом — в данном примере для сайта по умолчанию:
vi /etc/apache2/sites-enabled/000-default.conf
Добавляем строки внутри VirtualHost:
<VirtualHost *:80>…ProxyPreserveHost OnProxyPass / http://127.0.0.1:8084/ProxyPassReverse / http://127.0.0.1:8084/…</VirtualHost>
* где опция ProxyPreserveHost включаем проксирование для виртуального домена; ProxyPass позволяет перенаправить все запросы на данный сервер (в данном примере, на локальный mono-xsp4); ProxyPassReverse задает правило для возврата ответа — при такой настройке ответ будет возвращаться обратно веб-серверу.
apachectl configtest
… и перезапускаем веб-сервер:
systemctl restart apache2
Теперь открываем браузер и переходим по адресу без указания порта — http://<IP-адрес сервера>/samples/. Мы должны увидеть веб-приложение, настроенное на mono.
Разберем некоторые настройки, которые могут пригодится при конфигурировании сервера.
Открываем файл webapp:
vi /etc/xsp4/debian.webapp
Добавим веб-приложение:
<apps> … <web-application> <name>api</name> <vpath>/api</vpath> <path>/var/www/api</path> </web-application></apps>
* где:
… также можно использовать дополнительные опции:
Перезапускаем mono-xsp4:
systemctl restart mono-xsp4
Открываем настройки mono-xsp4:
vi /etc/default/mono-xsp4
Ищем опцию port= и меняем ее значение на порт, на котором должен работать сервис:
…port=8080…
После перезапускаем mono-xsp4:
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies