среда, 14 октября 2020 г.

Локальный сервер обновлений 2ГИС на Linux

По непонятной причине 2ГИС удалили со своего сайта инструкцю по настройке локального сервера обновлений на Linux для ПК-версии своего продукта. Если что-то было в интернете, то WebArchive это точно помнит, так что инструкция всё ещё доступна, если знать где искать.
В случае с Linux локальный сервер обнвлений из себя представляет обычный Nginx, работающий в качестве кеширующего прокси.

Сервер будет работать под управлением CentOS 8.
Для начала установим и запустим ngnix
yum install nginx -y
systemctl enable nginx
systemctl start nginx
Теперь скачаем и распакуем архив с конфигурационными файлами с севрера 2ГИС, благо ссылка ещё жива
cd /tmp
wget http://download.2gis.ru/arhives/2gis-local-update-server.tar.gz
tar xvzf 2gis-local-update-server.tar.gz
Переместим полученные файлы в каталог nginx
mv 2gis-local-update-server-partial.conf /etc/nginx
mv 2gis-local-update-server.conf /etc/nginx/conf.d/
Создадим каталог для хранения сертификата и ключа SSL
mkdir /etc/nginx/ssl
а так же каталоги для хранения кеша
mkdir -p /var/cache/2gis/nginx/updates
mkdir -p /var/cache/2gis/nginx/temp
mkdir -p /var/cache/2gis/nginx/infolist
touch /var/cache/2gis/nginx/updates/ping
Из основного файла конфигурации /etc/nginx/nginx.conf убираем все упоминания директивы server.
В дополнительном файле конфигурации /etc/nginx/conf.d/2gis-local-update-server.conf изменим строку
limit_zone activity_threshold $threshold 10m;
на
limit_conn_zone $threshold zone=activity_threshold:10m;
иначе nginx -t будет ругаться
nginx: [emerg] unknown directive "limit_zone" in /etc/nginx/conf.d/2gis-local-update-server.conf:33
nginx: configuration file /etc/nginx/nginx.conf test failed
и не забываем указать правильный путь к сертификату и ключу в строках
ssl_certificate /etc/nginx/ssl/domain.cer;
ssl_certificate_key /etc/nginx/ssl/domain.key;
Если файлы конфигурации не содержат ошибок, то nginx -t выдаст в ответ
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
загрузим обновлённые настройки
nginx -s reload
Теперь изменим соответствующие настройки безопасности.
Для начала дадим пользователю nginx права на каталог с кешем
chown -R nginx: /var/cache/2gis
Добавим разрешения для firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmr --reload
и SELinux
setsebool -P httpd_can_network_connect on
Если последнего не сделать, то работать сервис не будет, а в /var/log/nginx/error.log будут записи вида:
connect() to 80.89.133.162:80 failed (13: Permission denied) while connecting to upstream
После этого можно добавить псевдоним 2gis-update на DNS-сервере, который будет ссылаться на наш новый сервер. Адрес локального сервера обновлений указывается в параметрах центра обновлений программы, либо через GPO в ветке реестра
HKEY_CURRENT_USER\Software\DoubleGIS\GrymUpdate\Settings\Servers

Комментариев нет:

Отправка комментария