Перейти к содержанию

Поиск

Показаны результаты для тегов 'mariadb'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • OpeNode
    • Новости
    • Общение
  • Статьи и обсуждения
    • Docker Контейнеры
    • Прокси и Виртуальный Частные Сети
    • Сетевое оборудование
    • 3D-моделирование и 3D-печать
    • WEB технологии и их применение
    • Операционные системы и Софт
    • Домашняя инфраструктура
    • Программирование и архитектура
    • Искусственный интеллект
    • OSINT
  • Клуб DWG Проблемы сборок
  • Клуб DWG Сборки DWG
  • Zero Trust Network Темы
  • Zero Trust Network OpenZITI
  • Marzban Инструкции
  • Marzban Продвинутые инструкции
  • Marzban Вопросы и проблемы
  • Marzban Общение
  • BookWorm Общение
  • BookWorm Поиск материалов
  • Общий клуб - ОБЩЕНИЕ Предложения по КЛУБАМ
  • Панели управления VPN и Proxy 3x-UI/X-ui
  • Панели управления VPN и Proxy Другие решения

Категории

  • Полезные файлы
    • CMS
  • Книги - общий раздел
    • Хакинг и безопасность [FILES]
    • СУБД [FILES]
    • Сети / VoIP [FILES]
    • Веб-дизайн и программирование [FILES]
    • Mac OS; Linux, FreeBSD и прочие *NIX [FILES]
  • 3D-модели для печати
  • Marzban Файлы
  • BookWorm Книги

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Обо мне


Пол

Найдено 1 результат

  1. Всем привет! Бывают разные технические ситуации, и вот иногда нужно сделать так, чтобы две копии Marzban были установлены на одном сервере. Сделать это возможно, и можно даже сделать управление ими через команды marzban cli. Сегодня расскажу как это сделать. За Reverse proxy будет отвечать Nginx Proxy Manager. Все подключения у клиентов будут только к нодам Страницы подписки и страницы панелей будут различаться. На мэйн сервере будут открыты только порты 443 Поднимать мэйны будем сразу с БД MySQL (MariaDB) Никакой HaProxy нам не нужен, мы не будем использовать никакой переброс портов и reality (везде будет 443 порт) Установка будет без скрипта, в ручном режиме. Начнем. 1. Берем сервер. Проще всего мне сейчас взять сервер у Vultr: https://www.vultr.com/?ref=9598405 Но как я уже говорил в теме ФэнШуя , за мэйн сервер хорошо подойдет и любой надежный провайдера в РФ, ведь к нему доступ будет скрыт полностью за CDN CloudFlare (проксироваться) и никто особо даже не узнает, что И я кажется я нашел для себя не дорогого но надежного провайдера: https://vscale.io/?invite=dhOwOGF0szepMIczf5bR (Обзор на него будет как нибудь в другой раз.) 1.1. Заказываем сервер. В моем случае я выбираю сервер с публичным адресом (конечно же), характеристики беру достаточные. Установка проходит очень быстро 2. Установка Nginx proxy manager Зашли на сервер. 2.1. Первым делом что? Правильно, обновили систему и установили обновления: apt update && apt upgrade -yqq 2.2. Теперь дело дошло до NPM Ставим сперва Docker curl -fsSL https://get.docker.com | sh Теперь ставим сам NPM mkdir npm && cd npm && nano docker-compose.yml Вставляем в него код (по инструкции: https://nginxproxymanager.com/setup/ ) services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP # Uncomment the next line if you uncomment anything in the section # environment: # Uncomment this if you want to change the location of # the SQLite DB file within the container # DB_SQLITE_FILE: "/data/database.sqlite" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt Теперь запускаем контейнер: docker compose up -d И переходим по адресу нашего сервера на порт 81: http://31.129.56.165:81/ И вводим данные по умолчанию: Сменим сразу логин и пароль Зайдем в Proxy Host и зададим сразу домен для нашего NPM Под это дело я создам новый в CF новую запись, и сразу ее проксирую Возвращаюсь в NPM и задаю параметр домена и настройки как на скриншоте. Сеть докера по умолчанию 172.17.0.1 а порт 81 Иду на вкладку SSL и запрашиваю новый серт Отлично. Теперь идем в docker-compose.yml и уберем из публикации 81 порт nano ~/npm/docker-compose.yml Перезапускаем контейнер. docker compose restart И переходим на наш адрес: https://test-npm.openode.xyz/ 3. Установка первого Marzban Main Теперь возвращаемся к основной теме установки. Запускать каждый Marzban мы будем в отдельных контейнерах и в отдельных сетях (чтобы не было пересечения по IP адресам и портам). 3.1. Создаем новую сеть Docker docker network create --driver bridge --subnet 10.10.0.0/24 --gateway 10.10.0.1 network_one Сразу создадим вторую для второго Marzban docker network create --driver bridge --subnet 10.20.0.0/24 --gateway 10.20.0.1 network_two Давайте сразу подключим наш NPM к этим двум сетями: nano ~/npm/docker-compose.yml Добавляем в конец: networks: - network_one - network_two networks: network_one: external: true network_two: external: true Общий вид будет такой: Поднимаем заново контейнер командой: cd ~/npm && docker compose up -d 3.2. Создаем папку для первого Marzban mkdir -p /opt/marzban_1 && mkdir -p /var/lib/marzban_1 3.3. Создадим сразу файлы заготовки: touch /opt/marzban_1/docker-compose.yml && touch /opt/marzban_1/.env и скачаем наш xray-config curl -o /var/lib/marzban_1/xray_config.json https://raw.githubusercontent.com/Gozargah/Marzban/dev/xray_config.json 3.4. Заполним их содержимым docker-compose.yml: nano /opt/marzban_1/docker-compose.yml Будет иметь такой вид: services: marzban_1: image: gozargah/marzban:dev restart: always env_file: .env volumes: - /var/lib/marzban_1:/var/lib/marzban networks: network_one: ipv4_address: 10.10.0.10 depends_on: - mysql_1 mysql_1: image: mariadb:lts environment: MYSQL_ROOT_PASSWORD: my-root-password MYSQL_ROOT_HOST: '%' MYSQL_DATABASE: marzban MYSQL_USER: marzban MYSQL_PASSWORD: password command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --innodb-log-file-size=67108864 - --bind-address=0.0.0.0 volumes: - /var/lib/marzban_1/mysql:/var/lib/mysql networks: network_one: ipv4_address: 10.10.0.3 networks: network_one: external: true 3.5. Заполним их содержимым .env: Содержимое мы ПОЛНОСТЬЮ возьмем из оригинального репозитория DEV ветки: https://raw.githubusercontent.com/Gozargah/Marzban/dev/.env.example Теперь раскомментируем нужные нам строки: Добавим новую строку для подключения к нашей БД: SQLALCHEMY_DATABASE_URL="mysql+pymysql://marzban:[email protected]:3306/marzban" Добавим строчку с ядром (для дальнейшего обновления его) - АДРЕС УКАЗЫВАЕТСЯ В ПАПКЕ ВНУТРИ КОНТЕЙНЕРА, ПОЭТОМУ АДРЕС не /marzban_1/ XRAY_JSON = "/var/lib/marzban/xray_config.json" Добавим строки с данными для подписок: XRAY_SUBSCRIPTION_URL_PREFIX = "https://link.openode.xyz" XRAY_SUBSCRIPTION_PATH = for-you Это будут наши основные, остальные параметры указывайте на свое усмотрение. 3.6. Установим сразу два оригинальных сервиса marzban cli: curl -sSL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh | sudo install -m 755 /dev/stdin /usr/local/bin/marzban_1 и второй curl -sSL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh | sudo install -m 755 /dev/stdin /usr/local/bin/marzban_2 Это позволит нам использовать разные команды для управления двумя контейнерами: marzban_1 update (например) Но мы теперь зайдем и отредактируем один параметр внутри, который будет указывать наши папки. nano /usr/local/bin/marzban_1 Находим внутри строку: И меняем на название нашего сервиса и наших папок (для удобства - они должны совпадать): marzban_1 Получаем так: Аналогично делаем для второго: nano /usr/local/bin/marzban_2 Пробуем поднять наш первый контейнер. marzban_1 up Выйдет ошибка. Не переживаем!!! Смотри список наших контейнеров: docker ps видим такой вид: Теперь нам нужно зайти в наш контейнер с mysql: docker exec -it marzban_1-mysql_1-1 bash теперь команду работы с БД mariadb -u root -p запросит пароль, вводите password Создайте пользователя marzban и установите ему пароль: CREATE USER 'marzban'@'%' IDENTIFIED BY 'password'; Предоставьте пользователю marzban все привилегии на базе данных marzban: GRANT ALL PRIVILEGES ON marzban.* TO 'marzban'@'%'; FLUSH PRIVILEGES; Убедитесь, что пользователь создан и имеет необходимые права: SHOW GRANTS FOR 'marzban'@'%'; Вывод будет примерно таким, если у вас все корректно: Теперь перезапускаем наш marzban: marzban_1 restart И видим успех! 4. Возвращаемся в нашу nginx proxy manager и пробрасываем домен для подписки и для панели (покажу только на примере подписки): Готово! Все остальные настройки используйте аналогично как я писал в предыдущих статьях. 5. Аналогичные процедуры проводим для второго сервера marzban. Но везде где мы использовали marzban_1 делаем marzban_2. А где mysql_1 делаем mysql_2. Не забываем, что мы будем использовать другую сеть. Вот конфиг docker-compose.yml для marzban_2 из нашего примера: services: marzban_2: image: gozargah/marzban:dev restart: always env_file: .env volumes: - /var/lib/marzban_2:/var/lib/marzban networks: network_two: ipv4_address: 10.20.0.10 depends_on: - mysql_1 mysql_2: image: mariadb:lts environment: MYSQL_ROOT_PASSWORD: my-root-password MYSQL_ROOT_HOST: '%' MYSQL_DATABASE: marzban MYSQL_USER: marzban MYSQL_PASSWORD: password command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --innodb-log-file-size=67108864 - --bind-address=0.0.0.0 volumes: - /var/lib/marzban_2/mysql:/var/lib/mysql networks: network_one: ipv4_address: 10.20.0.3 networks: network_two: external: true Отдельной темой распишу потом как ограничить доступ к другим путям, если мы используем разные домены для подписки и для панели.
×
×
  • Создать...

Важная информация

Вы принимаете наши Условия использования, Политика конфиденциальности, Правила. А также использование Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Яндекс.Метрика