Сервер обновлений 2ГИС для 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, вы можете установить Сервер обновлений самостоятельно.
- Установите nginx версии 0.7.65 или выше. Пакеты есть во всех распространённых GNU/Linux и BSD дистрибутивах.
- Найдите файлы конфигурации nginx. Здесь и далее предполагается, что они в /etc/nginx; если у вас по-другому, мысленно подставьте свой путь в дальнейшую инструкцию.
- Выкачайте и распакуйте конфигурационные файлы Сервера обновлений:
wget http://download.2gis.ru/arhives/2gis-local-update-server.tar.gz
tar xvzf 2gis-local-update-server.tar.gz - Скопируйте файлы 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/ - Скопируйте файл 2gis-local-update-server.conf в каталог /etc/nginx/conf.d:
sudo cp 2gis-local-update-server.conf /etc/nginx/conf.d/
- Создайте каталоги для кэша:
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
- Смените владельца каталога кэша на тот аккаунт, под которым в вашей системе работает nginx. Здесь предполагается, что это www-data:
- Если вы хотите, чтобы Сервер обновлений был сайтом по умолчанию (обрабатывал запросы по всем именам, а не только по 2gis-update), добавьте в директивы listen файла 2gis-local-update-server.conf ключевое слово default_server.
server {
listen *:80 default_server;
…
}
server {
listen *:443 default_server;
…
} - Перезапустите nginx:
sudo /etc/init.d/nginx restart
У меня ещё нет каталога conf.d
- Создайте его:
sudo mkdir -p /etc/nginx/conf.d
- Замените 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
Удаление Сервера обновлений, установленного вручную
- Удалите файлы 2gis-local-update-server-partial.conf, 2gis-local-update-server.key, 2gis-local-update-server.crt, 2gis-local-update-server.conf.
- Если при установке вы добавили в nginx.conf строчку include, подключающую 2gis-local-update-server.conf, удалите или закомментируйте её.
- При необходимости удалите каталог кэша /var/cache/2gis.
- Перезапустите или удалите nginx.