Видеонаблюдение через интернет в веб-браузере

Делаем веб-интерфейс AVReg корневым (Apache)

Программное окружение, используемое для примеров настоящего руководства:

  • Debian GNU/Linux 10 (buster);
  • Apache 2.4 (проверить версию: apt-cache policy apache2);
  • AVReg 6.3 (проверить версию: apt-cache policy avreg-common).

В другом программном окружении (Ubuntu или AVReg других версий) могут быть незначительные отличия от текста.

Также советуем ознакомится с руководством Использование веб-сервера NGINX для AVReg.

Задача

По умолчанию, сразу после установки веб-интерфейс AVReg доступен по адресу (URL):

http://hostNameOrIpAddress/avreg/

Если вас это устраивает и префикс /avreg не «режет глаз», то делать ничего не нужно и, зачастую, это самое правильное ваше решение )

Но если вам кажется некрасивым доступ по ip-адресу или лишним префикс /avreg (возможно AVReg - единственный веб-интерфейс данного сервера), то данное руководство сделано для вас.

Итак, задача избавится от префикса /avreg в URL-path и обеспечить чтобы запросы вида

http://hostNameOrIpAddress/

сразу адресовали веб-интерфейс AVReg.

Решение

Существует три основных способа размещения ресурсов на веб-сервере:

  1. Alias - ресурсы разделяются с помошью префиксов URL-path, этот вариант настраивается по-умолчанию сразу после установки серверной части AVReg.
  2. Virtual HOST - ресурсы разделяются по FQDN сервера.
  3. TCP port - разделение по номерам TCP портов, принимающих HTTP(S) запросы, частный случай Virtual HOST, редко используется, не рассматривается в этом руководстве.

Самым «профессиональным» является Virtual HOST, т.к. позволяет не только полностью избавиться от префиксов пути, но и максимально полно разделить конфигурации веб-ресурсов на конкретном веб-сервере.

Ниже приводим 3 различных варианта настройки веб-сервера Apache2 для размещения веб-интерфейса AVReg с описанием преимуществ и недостатков каждой конфигурации.

Настройки Apache

Вариант №1 - Virtual HOST

В этом варианте в URL-е используется FQDN сервера, например,

http://avreg.host.name

За(+) и против(-):

  • + позволяет использовать другие веб-сервисов на этом сервере кроме AVReg-a;
  • + позволяет использовать информацию о сервисе в URL-e, например, surveillance.your-company.com;
  • + позволяет полностью избавиться от префикса ''/avreg'';
  • - невозможность доступа по IP-адресу, только по хост-имени.

Настройками используемого сервера в вашей сети DNS-сервера или локальными настройками HOSTS(5) обеспечьте доменное имя сервера, которое будет использоваться в URL при доступе к веб-интерфейсу AVReg.

В простейшем случае, для этого руководства мы воспользовались HOSTS(5), просто добавив строку в файл /etc/hosts

  192.168.54.61    avreg.host.name avreg

Примечание: для правильного изменения единственного хост-имени сервера читайте это руководство https://www.cyberciti.biz/faq/how-to-change-hostname-on-debian-10-linux/

Итак, хост-имя или ServerName (в контексте настроек Apache2) для настоящего руководства «avreg.host.name». Копируя и применяя тексты примеров ниже, замените это хост-имя на то, которое будете использоваться вы.

Отключите дефолтную Alias-based конфигурацию AVReg для Apache2.

  sudo a2disconf avreg

Cоздайте Virtual Host конфигурацию Apache2 для веб-интерфейса AVReg создав в редакторе новый конфиг-файл «003-avreg-vhost.conf»:

  sudoedit /etc/apache2/sites-available/003-avreg-vhost.conf

и поместив туда следующее содержимое:

  <VirtualHost *:80>
      ServerName avreg.host.name
      
      ServerAdmin avreg@avreg.net
      DocumentRoot /usr/share/avreg-site
      
      ErrorLog ${APACHE_LOG_DIR}/error-avreg.log
      CustomLog ${APACHE_LOG_DIR}/access-avreg.log combined
      
      Include conf-available/avreg.conf
  </VirtualHost>

Выаполните рекомендации раздела »Настройки AVReg» для удаления префикса пути /avreg.

Подключите конфигурацию виртуального сервера с хост-именем «avreg.host.name» и перегрузите apache2:

  sudo a2ensite 003-avreg-vhost
  sudo systemctl reload apache2

Проверьте новую конфигурацию открыв в браузере URL http://avreg.host.name

Вариант №2 - перенаправление (redirect)

Этот вариант очень прост, URL

http://hostNameOrIpAddress/

автоматически перенаправляется на адрес

http://hostNameOrIpAddress/avreg/

За(+) и против(-):

  • + возможность доступа как по IP-адресу, так и по хост-имени;
  • - невозможность использования других веб-сервисов на этом сервере кроме AVReg-a;
  • - формально, префикс ''/avreg'' останется.

Для его реализации варианта настроек воспользуйтесь директивой RedirectMatch модуля mod_alias.

Первым делом, активируйте Apache модуль «mod_alias»:

sudo a2enmod alias

Далее, откройте в текстовом редакторе конфигурационный файл Apache2

sudoedit /etc/apache2/sites-available/000-default.conf

и добавьте строки, помеченные символом »+»:

diff -U3 /etc/apache2/sites-available/000-default.conf.orig /etc/apache2/sites-available/000-default.conf

--- /etc/apache2/sites-available/000-default.conf.orig      2016-09-28 10:26:20.876000000 +0300
+++ /etc/apache2/sites-available/000-default.conf    2016-09-28 10:38:55.184000000 +0300
@@ -10,7 +10,6 @@
 
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
+     RedirectMatch ^/$ /avreg/
 
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.

После изменения файлов нужно перезагрузить процесс веб-сервера Apache (см. ниже, в конце статьи).

Вариант №3 - меняем DocumentRoot.

За(+) и против(-):

  • + возможность доступа как по IP-адресу, так и по хост-имени;
  • + позволяет полностью избавиться от префикса ''/avreg'';
  • - невозможность использования других веб-сервисов на этом сервере кроме AVReg-a.

Потреубется изменить содержимое трёх файлов:

  1. /etc/apache2/sites-available/000-default.conf - изменить значение параметра DocumentRoot;
  2. /etc/avreg/site-apache2-user.conf - изменить алиас /avreg/media;
  3. /etc/avreg/avreg.conf - для приложения avreg-site (веб-интерфейс AVReg) очистить значение параметра prefix.

Ниже представлены различия (в формате diff -U), наглядно поясняющие какие строки удалять (помечены знаком минус) а какие строки добавлять (помечены знаком плюс).

Откройте в текстовом редакторе файл 000-default.conf:

sudoedit /etc/apache2/sites-available/000-default.conf

и замените в нём строку помеченную символом »-» на строку помеченную символом »+»:

diff -U2 /etc/apache2/sites-available/000-default.conf.orig /etc/apache2/sites-available/000-default.conf

--- /etc/apache2/sites-available/000-default.conf.orig      2016-09-28 10:26:20.876000000 +0300
+++ /etc/apache2/sites-available/000-default.conf    2016-09-28 10:55:49.864000000 +0300
@@ -10,5 +10,5 @@
 
        ServerAdmin webmaster@localhost
-     DocumentRoot /var/www/html
+     DocumentRoot /usr/share/avreg-site
 
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,

Необходимые изменения в остальных 2 файлах см. в разделе ниже.

Настройки AVReg

Примечание. Более точно, размещённые в каталоге /etc/avreg/.

Для варианта №2 (с перенаправлением) настройка ниже не нужна.

Откройте в текстовом редакторе:

sudoedit /etc/avreg/site-apache2-user.conf

и удалите не нужный более псевдоним (alias) /avreg.

Для этого, найдите строки:

  Alias '/avreg/media' '/var/spool/avreg'
  Alias '/avreg' '/usr/share/avreg-site'

и замените на эти 2 строки (вторая строка просто комментируется)

  Alias '/media' '/var/spool/avreg'
  # Alias '/avreg' '/usr/share/avreg-site'

Далее, откройте в текстовом редакторе:

sudoedit /etc/avreg/avreg.conf

найдите в нём группу настроек веб-интерфейса «avreg-site» и добавьте параметр «prefix» с пустым значением.

Должно получиться примерно так:

/etc/avreg/avreg.conf

...
avreg-site {
  ...
  prefix = ''
  ...
}
...

Перезапуск Apache

После изменения конфигурационных файлов нужно сообщить об этом веб-серверу Apache посредством выполнения любой команды (предполагается что демон apache2 уже работает):

sudo apache2ctl -k restart

или

sudo service apache2 restart
manual/applications/remove-avreg-prefix.txt · Последние изменения: 2019-12-06