Установка раздатчиков CopyBaseWeb на QNAP.Linux QTS 4.2.6 и ASUSWRT Merlin 380.70
ЦЕЛЬ ЗАТЕИ: - Для раздачи томов баз данных .db6 через сервис CopyBaseWeb необходимые файлы должны быть доступны в адресе по схеме http://адрес_сервера/db/7475.db6 (обязательны каталог db и запрос авторизации).
Для возможности обновить Программный комплекс в папку с базами нужно добавить специальный архив : ftp://login:parol@ftp.kodeks-luks.ru/PK/SpecialEdition/6.4.2.52.zip
Для возможности обновить Программный комплекс в папку с базами нужно добавить специальный архив : ftp://login:parol@ftp.kodeks-luks.ru/PK/SpecialEdition/6.4.2.52.zip
QNAP TS-459 PRO II QTS 4.2.6 (NAS)
Тут относительно все просто ...
Установка сервера
Nginx берем из Entware. Если этот пакет не установлен, то в админке NAS идем в APP Center и берем его из официального репозитория QNAP или из QnapClub.eu (Я установил Entware-Std из qnapclub.eu)NGINX из Entware
[~] # opkg find nginx* # сам пакет может называться по-особенному, поэтому сперва смотрим все что есть
collectd-mod-nginx - 5.10.0-3 - nginx status input plugin
nginx - 1.17.5-2 - nginx is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. (Some module require SSL module enable to show up in config menu)
nginx-extras - 1.17.7-1 - nginx is an HTTP and reverse proxy server, as well as a mail proxy server,
written by Igor Sysoev. This is mainline version where all available plugins and patches are taken from Debian nginx-extras package.
[~] # opkg install nginx-extras #Устанавливаем nginx-extras
[~] #
Настройки и файлы конфигурации
Заводим новые группу и пользователя без пароля с рангом 999 (см. коммады password файлы etc/password etc/groups /etc/shadow)
Глобальные настройки Nginx почти не изменяются
nginx.conf
user !usr!? !gruppa!?;
worker_processes 1; # процессор у меня один
pid /opt/var/run/nginx.pid;
include /opt/etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768; # не разобрался
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /opt/etc/nginx/mime.types;
default_type application/octet-stream;
access_log /opt/var/log/nginx/access.log;
error_log /opt/var/log/nginx/error.log notice;
#rewrite_log on;
gzip on;
gzip_disable "msie6";
# Virtual Host Configs
include /opt/etc/nginx/conf.d/*.conf;
include /opt/etc/nginx/sites-enabled/*; # настройки виртуального сервера в отдельном файле copybase
}
Создаем файл виртуального сервера с каталогом db
site-available/copybase
server {
listen 6501 default_server;
#listen [::]:6501 default_server;
root /opt/share/www/copybaseweb;
index index.html index.htm;
server_name cbw.novur.ru;
location / {
rewrite ^(?:/db/?)(.*)$ /db/$1 permanent;
try_files $uri $uri/ =404;
auth_basic "Password-protected Area";
auth_basic_user_file /opt/etc/nginx/.htpasswd;
}
location /db/ {
rewrite ^/db/(.*) /$1; # скрипт создания символических ссылок на базы в каталоге baseLoader
try_files $uri $uri/ =404; # кладет файлы ссылок в корень сайта, физически каталога db не существует.
auth_basic "Password-protected Area"; # вместо того чтобы поправить скрипт заморочился с rewrite
auth_basic_user_file /opt/etc/nginx/.htpasswd;
# запретил ходить на офисный раздатчик (cbw.novur.ru:6501) тем у кого нет пиринга с ООО Сайт
# возможно со временем появится возможность ограничивать клиентов
#в доступе непосредтсвенно на copybase.ru
deny 188.113.189.205; #Солнцетелеком Сахниро
deny 188.113.189.66; #Солнцетелеком Биолит
deny 188.168.65.162; #ТТК Шельф Сервис
deny 188.244.143.232; #ТТК Долинское ДРСУ
}
Пароль для доступа к каталогу /db/
Придумываем и дописывем логин:пароль в /opt/etc/nginx/.htpasswd. Нужно сохранить данные в менеджер паролей, он понадобится при настройке кластера на copybase.ru/Clusters[~] #
[~] # printf "ЛОГИН:$(openssl passwd -crypt ПАРОЛЬ)\n" >> /opt/etc/nginx/.htpasswd
[~] #
ASUSWRT Merlin
Прошивка 380.70Установить карту microSD
Про это много слов на форуме wl500g.infoС карты лучше предварительно удалить все разделы, особенно FAT32.
Проверяем наличие устройства
# ls -al /dev/sd*
и уже смонтрованные разделы # mount
Создаем новый раздел с помощью fdisk и форматируем его в ext3
[~] #
[~] # ls -al /dev/sd*
[~] # mount
[~] # fdisk /dev/sda
[~] #
[/] # mke2fs -j -L=sdcard /dev/sda1
[/] #
Nginx
Сервер устанавливаем также из Entware. Сам репозитрорий устанавливается скриптом из прошивки Мерлинаentware-setup.sh
Конфигурацию сервера взять из варианта с NAS. Только уж теперь без rewrite
Nginx устанавливается на свободный порт (у меня 6501) и запускается от имени everyone:everyone, в конфигурации для виртуального сервера меняем корневой каталог
location /db/ {
...
root /mnt/меткаUSB_HDD/каталог/где/лежат/файлы/db6/
...
}
Firewall
Для доступа из WAN нужно открыть порт роутера на WAN интерфейсе.В редакторе или другим способом создать файл /jffs/scripts/firewall-start и скопировать в него следующие строки
#!/bin/sh
iptables -I INPUT -p tcp --destination-port 6501 -j ACCEPT
Установить на этот файл разрешение на запуск
chmod a+rx /jffs/scripts/firewall-start
[/] #chmod a+rx /jffs/scripts/firewall-start
На роутере
можно настроить при необходимости переадресацию портов 6501 на 6501. ИНТЕРНЕТ-> Переадресация портов,
но мне оказалось достаточно и скрипта
Текст инструкции от Владимира Брызгалова CopybaseWeb
Настройка Nginx для CopyBaseWeb В целом - тома должны быть доступны для скачивания в следующем виде: http://адрес_сервера/db/7475.db6 (из каталога db и с запросом авторизации). В папку с базами также нужно добавить спец. дистрибутив для обновления ПК: ftp://login:parol@ftp.kodeks-luks.ru/PK/SpecialEdition/6.4.2.52.zip Устанавливаем веб-сервер Nginx Подключаем репозитории разработчиков (создаём в папке /etc/apt/sources.list.d файл nginx.list): sudo touch /etc/apt/sources.list.d/nginx.list Открываем созданный файл в редакторе: sudo nano /etc/apt/sources.list.d/nginx.list И вносим в него следующие записи (для Debian 8 указываем «jessie» для 9 версии «stretch», для других релизов принцип тот же): deb http://nginx.org/packages/mainline/debian/ stretch nginx deb-src http://nginx.org/packages/mainline/debian/ stretch nginx Сохраняем: Ctrl+X, y Скачиваем и устанавливаем PGP-ключ для проверки подлинности пакетов: cd wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key Обновляем список пакетов: sudo apt-get update Ставим Nginx: sudo apt-get install nginx Вводим в браузере адрес сервера и видим приветствие установленного nginx! Настраиваем публикацию файлов Создаём каталог «db» для публикации баз: sudo mkdir /usr/share/nginx/html/db Узнаём количество ядер процессора: nproc Открываем основной файл конфигурации сервера nginx: nano /etc/nginx/nginx.conf Устанавливаем значение worker_processes равное результату команды nproc: worker_processes = ?; В секции http для сокрытия версии Nginx (необязательно) добавляем: server_tokens off; Сохраняем файл: Ctrl+X, y, Enter Открываем другой файл конфигурации сервера nginx: nano /etc/nginx/conf.d/default.conf В секцию location добавляем авторизацию: auth_basic "closed site"; auth_basic_user_file /etc/nginx/.htpasswd; Сохраняем файл: Ctrl+X, y, Enter Проверяем новую конфигурацию NGINX: nginx -t Если вывод содержит "syntax is ok" и "test is successful" - конфигурация корректна. Если веб-сервер не запущен, то запускаем: service nginx start Создаём логин для авторизованного доступа (слова «логин» и «пароль» заменить любыми другими на английской раскладке): printf "логин:$(openssl passwd -crypt пароль)\n" >> /etc/nginx/.htpasswd Проверяем результат В папку /usr/share/nginx/html/db копируем файлы БД. Вводим в браузере ссылку для скачивания опубликованного файла, например: http://адрес_сервера/db/7475. db6 Браузер должен запросить авторизацию! Вводим логин и пароль указанные в команде printf... Если всё верно – начнётся скачивание файла. Подключите настроенный сервер к сервису CopyBaseWeb в личном кабинете http://copybase.ru/Clusters