Как настроить сервер обновлений для Unix

Системные требования

Сервер обновлений 2ГИС для *nix реализован на базе web-сервера nginx. Если у вас в сети уже есть сервер с nginx, обслуживающий внутренний web-сайт компании, и на этом сервере есть доступ в Интернет — вы можете «подселить» туда Сервер обновлений. Он займёт виртуальный хост 2gis-update, не мешая другим сайтам.

Чтобы пользовательские компьютеры автоматически обнаружили локальный сервер обновлений, машина, на которой установлен Сервер обновлений, должна откликаться на DNS-имя 2gis-update.ваш_домен. Или же вы можете прописать адрес сервера обновлений в настройках каждого пользователя — вручную или с помощью доменных политик.

Также вам понадобится дисковое пространство под кэш. В базовой поставке настроен кэш размером 2ГБ; в зависимости от подмножества баз, используемых вашими пользователями, для эффективного кэширования может понадобиться увеличить размер кэша.

Установка и настройка Сервера обновлений

Установка из репозитория для Debian-подобных систем

Если вы используете Debian, Ubuntu или другой основанный на Debian дистрибутив GNU/Linux, вы можете установить Сервер обновлений из нашего репозитория. Мы выпускаем пакет для Ubuntu; он должен также работать на других дистрибутивах, где работает nginx версии не ниже 0.7.65.

Добавьте в /etc/apt/sources.list следующую строчку:
deb http://deb.2gis.ru/ 2gis main

Импортируйте наш ключ:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 69ECCC891636CC92
gpg --armor --export 69ECCC891636CC92 | sudo apt-key add -

Установите пакет 2gis-local-update-server:
sudo apt-get update
sudo apt-get install 2gis-local-update-server

  • Если у вас ещё не установлен nginx, он будет автоматически установлен и настроен для работы с Сервером обновлений.
  • Если nginx уже установлен, но на нём нет сайтов — Сервер обновлений установится как сайт по умолчанию.
  • Если nginx установлен и на нём есть сайты, то Сервер обновлений будет работать только как виртуальный хост (под именем 2gis-update), чтобы не затронуть работу ваших сайтов.

Установка вручную

Если вы пользуетесь другим дистрибутивом Linux или FreeBSD, вы можете установить Сервер обновлений самостоятельно.

  1. Установите nginx версии 0.7.65 или выше. Пакеты есть во всех распространённых GNU/Linux и BSD дистрибутивах.
  2. Найдите файлы конфигурации nginx. Здесь и далее предполагается, что они в /etc/nginx; если у вас по-другому, мысленно подставьте свой путь в дальнейшую инструкцию.
  3. Выкачайте и распакуйте конфигурационные файлы Сервера обновлений:
    wget http://download.2gis.ru/arhives/2gis-local-update-server.tar.gz
    tar xvzf 2gis-local-update-server.tar.gz
  4. Скопируйте файлы 2gis-local-update-server-partial.conf, 2gis-local-update-server.key, 2gis-local-update-server.crt в каталог /etc/nginx:
    do cp 2gis-local-update-server-partial.conf
    2gis-local-update-server.key 2gis-local-update-server.crt /etc/nginx/
  5. Скопируйте файл 2gis-local-update-server.conf в каталог /etc/nginx/conf.d:
    sudo cp 2gis-local-update-server.conf /etc/nginx/conf.d/
  6. Создайте каталоги для кэша:
    sudo mkdir -p /var/cache/2gis/nginx/updates
    sudo mkdir -p /var/cache/2gis/nginx/temp
    sudo mkdir -p /var/cache/2gis/nginx/infolist
    sudo touch /var/cache/2gis/nginx/updates/ping
  7. Смените владельца каталога кэша на тот аккаунт, под которым в вашей системе работает nginx. Здесь предполагается, что это www-data:
  8. Если вы хотите, чтобы Сервер обновлений был сайтом по умолчанию (обрабатывал запросы по всем именам, а не только по 2gis-update), добавьте в директивы listen файла 2gis-local-update-server.conf ключевое слово default_server.
    server {
    listen *:80 default_server;

    }
    server {
    listen *:443 default_server;

    }
  9. Перезапустите nginx:
    sudo /etc/init.d/nginx restart

У меня ещё нет каталога conf.d

  1. Создайте его:
    sudo mkdir -p /etc/nginx/conf.d
  2. Замените nginx.conf на следующее (подставив подходящие вам пути):
    user www-data;
    worker_processes 2;
    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;
    events {
    worker_connections 2048;
    }
    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    access_log /var/log/nginx/access.log;
    sendfile on;
    tcp_nodelay on;
    tcp_nopush on;
    gzip off;
    keepalive_timeout 2s;
    include /etc/nginx/conf.d/*.conf;
    }

Продолжите установку согласно инструкции.

У меня уже есть тщательно настроенный nginx.conf, я не хочу его реорганизовывать

Добавьте в секцию http следующую строчку:
include /path/to/2gis-local-update-server.conf;

Не забудьте создать все необходимые каталоги, как описано выше.

Автоматическое обнаружение сервера обновлений

Центр обновлений 2ГИС автоматически обнаружит ваш сервер обновлений, если он будет отзываться на имя 2gis-update. Если ваш DNS-сервер использует bind, добавьте в файл описания зоны строчку:
2gis-update IN A kkk.lll.mmm.nnn

подставив вместо kkk.lll.mmm.nnn IP-адрес вашего сервера.

Удаление

Удаление Сервера обновлений, установленного из deb-пакета

Следующая команда удалит Сервер обновлений, но оставит нетронутым кэш:
sudo apt-get remove 2gis-local-update-server

Чтобы удалить Сервер обновлений вместе с кэшем, используйте команду
sudo apt-get purge 2gis-local-update-server

Если nginx вам больше не нужен, удалите его тоже:
sudo apt-get purge nginx

Удаление Сервера обновлений, установленного вручную

  1. Удалите файлы 2gis-local-update-server-partial.conf, 2gis-local-update-server.key, 2gis-local-update-server.crt, 2gis-local-update-server.conf.
  2. Если при установке вы добавили в nginx.conf строчку include, подключающую 2gis-local-update-server.conf, удалите или закомментируйте её.
  3. При необходимости удалите каталог кэша /var/cache/2gis.
  4. Перезапустите или удалите nginx.

Смотрите также: