• Как правильно продлить Let's Encrypt сертификат для панели ISP?

    @feanor7
    Системный администратор
    Вы не уточнили версию исп, но в целом и общем у самого исп есть инструкция:
    https://doc.ispsystem.ru/index.php/%D0%98%D0%BD%D1...
    Ответ написан
    Комментировать
  • Почему Linux Firewall не блокирует IP?

    Возможно, дело в вышестоящем:
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    Пакеты проходят по этому правилу, т.к. уже установлены соединения.
    Ответ написан
    Комментировать
  • Синхронная репликация: MySQL NDB Cluster, Percona XtraDB, MariaDB Galera, mysql group replication (innodb cluster). В чем отличия?

    @vlarkanov
    Сравнивать все вышеизложенное не могу, т.к. не все пробовал, поделюсь схемой которая год в проде.

    Используется Galera-кластер на базе Percona Xtradb. В нем две физические ноды (база живет на SSD в mdadm RAID1), разнесенные по городам (~200км) + арбитратор на виртуалке (нужен для кворума т.к. кластер не должен содержать четное кол-во нод). Любой INSERT\UPDATE\DELETE апрувится всеми нодами и только тогда считается закоммиченым. Запросы разруливаются с помощью живущего на виртуалке прокси Maxscale. Одна из нод является мастером, на нее идут запросы на запись, вторая - слейв, получает запросы на чтение. В случае падения одной из нод вторая автоматически берет на себя ее функции (точнее, сами ноды о своих ролях знать не знают, рулит процессом Maxscale). Когда нода поднимается, она всасывает в себя произошедшие с момента падения изменения IST (Incremental State Transfer) если объем произошедших изменений не превышает размер galera cache (просто файл, размер указывается в конфиге mysql) или, в худшем случае загружается вся база. При этом нода-донор продолжает обрабатывать запросы клиентов как ни в чем не бывало. Присоединившаяся нода становится слейвом, т.к. смена мастера приводит к обрыванию соединений и ее лучше делать вручную, ночью.

    Для повышений надежности у обеих нод есть по одному слейву, куда в реальном времени реплицируются все изменения. С них удобно делать бекап в любой время, не боясь нагрузить базу (используем нативный перконовский Innobackupex, который очень быстро и без блокировок бекапит базу налету) или же выполнять тяжелые селекты.

    Если есть вопросы - задавайте, постараюсь ответить.
    Ответ написан
    2 комментария
  • Домашний сервер сбор почты, и просмотр с компьютеров в локальной сети возможно ли на Centos?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    1) ставите fetchmail для сбора почты по крону с удаленных ящиков
    2) ставите dovecot https://www.dovecot.org/ для раздачи собранного по imap

    Собственно первый пункт можно и опустить, а просто перетаскивать все лишенее в самом тундерберд по imap в ящики на dovecot. Тут же можно настроить и пару общих imap папок, для обмена пришедшей почтой.

    Ну и совсем цимес - запустить там же opensmtpd, для локальной почты... https://www.opensmtpd.org/
    Упс, вместо fetchmail пользовать getmail pyropus.ca/software/getmail
    Ответ написан
    4 комментария
  • Linux дистрибутив для предприятия?

    Sanes
    @Sanes
    Для 150 пользователей нужет отдел IT, который не задает такие вопросы.
    Ответ написан
    Комментировать
  • Как принято делать правильное развертывание docker через ansible?

    подскажите, в чем я неправ? Может быть, нужно это как-то иначе использовать?
    Какие сейчас практики применяют?


    Вы не совсем поняли. Ansible был когда docker и в помине не было. И отвечал задачам подготовки сервера к доставке(deploy) продукта (настройка окружения, установка зависимостей, ...) и непосредственно развертывания продукта. Так же некоторое применение было в обслуживании серверов (обновление сертификатов, установке патчей, ...).

    Сейчас в пост докеровском веке, отпала необходимость в установке и настройке зависимостей на сервере, изоляции сервисов (chroot, ...), ... Зависимости и сам продукт доставляются на сервер в готовом виде, т.е. уже развернутом и настроенном. В этом идея контейнеров. Это не от того, что docker играет на том же поле что Ansible, а потому что подход контейнеризации избавил Ansible от некоторых функции.

    Что не предоставляет docker? Это установка самого docker-а на сервере и запуск поверх него готовых контейнеров. Для этого, по прежнему необходим инструмент, можно тот же Ansible.

    P.S. Относительно недавно недавно избавил себя от использования Ansible, в пользу Fabric. По причине тяжеловесности Ansible для простых задач. Хотя обновленный Fabric стал лучше, но по прежнему не идеален (описание в императивном стиле, ...). Условно идеальным средством могут служит инструменты для оркестрации docker: Swarm и Kubernites, но не для простых сайтов и маленьких проектов.
    Ответ написан
    Комментировать
  • Стоит ли использовать каждый контейнер Docker отдельно для каждого запущенного процесса?

    В книге он говорит о том, что разработчики docker считают, что наиболее правильным в работе контейнеров использовать один процесс на один контейнер.
    Всё верно. Это основная парадигма при использовании контейнеризации. Ноги растут из 12 factors. Можно одной картинкой
    9fa5e46a57024980b1a291545b3ae530.png

    В некоторых случаях можно от неё отходить - суть не догма. Это случаи когда в контейнере с приложением надо держать планировщик (crontab), утилиту мониторинга, либо что-то ещё не относящееся к основному процессу.

    Подскажите, значит ли это, что если я хочу развернуть веб сервер то мне надо минимум 3 контейнера
    Так и есть. Дальнейший запуск всех приложений осуществляется одной командой. Поскольку она получается довольно длинной (как будто Ява приложение запускаешь), предпочтительно использовать для этих целей docker-compose. Там единственный файл в формате yaml, в котором можно описать, что в какой последовательности запускать и в случае необходимости перезапускать, сколько и каких ресурсов железа выделять каждому приложению и много много ещё чего.

    Или это все непринципиально и все можно сложить в один контейнер и будет работать так же хорошо.
    Можно и так сделать. Правда проще и разумнее всего не заморачиваться в этом случае с контейнерами.
    Ответ написан
    1 комментарий
  • В чем измеряется параметр txqueuelen?

    15432
    @15432
    Системный программист ^_^
    В единицах Ethernet кадров. При этом размер каждого кадра ограничен значением MTU. Если очередь заполнена, write() на блокирующем сокете будет ожидать, пока очередь не освободится, на неблокирующем выдаст ошибку EWOULDBLOCK
    Ответ написан
    Комментировать
  • Nginx: как правильно передать query_string в header?

    dvershinin
    @dvershinin
    High performance web server engineer
    proxy_set_header arg_some_arg $arg_some_arg;
    Ответ написан
    1 комментарий
  • Один ssl, один домен, два сервера?

    @Fixid
    Nginx reverse proxy
    Ответ написан
    Комментировать
  • Как исправить конфликт роутов?

    @dodo512
    upstream api {
      server 127.0.0.1:7777;
    }
    
    server {
      listen 80;
      listen [::]:80;
      server_name example.com;
    
      root /home/iam/project/dist;
    
      location / {
        try_files $uri $uri/ /index.html;
      }
    
      location /api/ {
        proxy_pass http://api/;
      }
    
      location /static/ {
        try_files $uri @cdn_uploads;
      }
    
      location @cdn_uploads {
        root /home/iam/cdn/uploads;
        rewrite ^/static(/.*)$  $1 break;
      }
    }
    Ответ написан
    Комментировать
  • Обновление nginx без его остановки?

    hOtRush
    @hOtRush
    1. Поднимаешь два новых сервера, ставишь на них новый нжиникс
    2. Переключаешь на них днсы, лоадбалансеры или что там у тебя
    3. Убиваешь старые сервера
    Ответ написан
    Комментировать
  • Какие правила маршрутизации необходимы для связи сетей через OpenVPN?

    @neol
    В конфиге openvpn необходимо прописать добавление маршрутов до удалённых сетей на сервере:

    route 192.168.10.0 255.255.255.0 client_ip1
    route 192.168.20.0 255.255.255.0 client_ip2
    route 192.168.30.0 255.255.255.0 client_ip3


    В ccd добавить маршруты до удалённых сетей для клиентов. Например для 192.168.10.0/24:
    push "route 192.168.20.0 255.255.255.0"
    push "route 192.168.30.0 255.255.255.0"

    Для двух других аналогично.

    На сервере разрешите маршрутизацию трафика:
    sysctl net.ipv4.ip_forward=1

    И в цепочке FORWARD iptables разруливаете какие пакеты куда должны ходить:
    iptables -A FORWARD -o tun0 -s 192.168.10.0/24 -j ACCEPT # Из сети 192.168.10.0/24 можно подключаться куда угодно
    iptables -A FORWARD -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # разрешить пакеты по уже установленным соединениям
    iptables -A FORWARD -j REJECT # Остальное запрещаем


    Если я ничего не забыл, то должно взлететь.
    Ответ написан
    6 комментариев
  • Telegram Bot как узнать chat_id зная username?

    s0l0wey
    @s0l0wey
    Ведущий мероприятий
    @userinfobot возвращает значение твоего chat_id
    @ShowJsonBot возвращает чуть больше информации
    Ответ написан
    4 комментария
  • Как в GRUB указать, что грузить ядро нужно с вебсервера?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    А как GRUB достанет данные с веб-сервера, когда у него нет ещё сетевой карты, настроек DNS и обработчика HTTPS handshake? TFTP-сервер ещё вариант, в этом случае вам потребуется отдавать образ, который будет тянуть ядро и образ файловой системы с него, читать про реализацию PXE (она, кстати, нативная на сетевой карте, так что это немного не GRUB). А вообще GRUB как таковой не умеет работать с не-локальными источниками данных. То есть никак.
    Ответ написан
    Комментировать