Установка и настройка mono на Linux Ubuntu

Обновлено и опубликовано Опубликовано:

Проект mono позволяет реализовать платформу .NET Framework на системах Linux. В данной инструкции мы разберем процесс его установки на Ubuntu.

Установка и запуск mono

Установку выполняем командой:

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 путем проксирования запросов.

NGINX

Открываем файл настройки виртуального домена по умолчанию:

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 -t

... и перезапускаем nginx:

systemctl restart nginx

Теперь открываем браузер и заходим по адресу http://<IP-адрес сервера>/samples/ (без указания порта). Мы должны увидеть веб-приложение, настроенное на mono.

Apache

Включаем модули для проксирования:

a2enmod proxy proxy_http

* где proxy — главный модель для перенаправления запросов; proxy_http — проксирование HTTP.

Настраиваем виртуальный домен с сайтом — в данном примере для сайта по умолчанию:

vi /etc/apache2/sites-enabled/000-default.conf

Добавляем строки внутри VirtualHost:

<VirtualHost *:80>
...
ProxyPreserveHost On
ProxyPass / 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>

* где:

  • web-application — секция с настройками приложения.
  • name — имя приложения.
  • vpath — путь URL, при обращении по которому приложение доступно.
  • path — путь на сервере, где находятся скрипты приложения.

... также можно использовать дополнительные опции:

  • vhost — имя виртуального хоста, если будем его применять.
  • vport — номер сетевого порта, на котором слушает приложение.
  • enabled — принимает значение true или false. Позволяет включить или отключить приложение.

Перезапускаем mono-xsp4:

systemctl restart mono-xsp4

Смена порта сервера

Открываем настройки mono-xsp4:

vi /etc/default/mono-xsp4

Ищем опцию port= и меняем ее значение на порт, на котором должен работать сервис:

...
port=8080
...

После перезапускаем mono-xsp4:

systemctl restart mono-xsp4

# Серверы # Ubuntu
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет