ServerAdmin.ru
31.6K subscribers
851 photos
57 videos
23 files
3K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
У сайтов на Bitrix существует одна особенность. Специально выделил жирным, потому что это такая особенность, что всем особенностям особенность. В админке можно править исходники сайта прямо наживую, в том числе и служебные файлы .htaccess. Любой, кто имеет доступ к админке, может грохнуть сайт. И это время от времени случается.

Вчера грохнули сайт по похожей схеме. Сеошник добавлял редиректы правкой .htaccess через админку. Редиректов там сотни. Сайт очень старый. Его развивали и поддерживали за последние лет 10 несколько разных компаний и программистов. Правку файлов тоже на постоянной основе делают несколько человек - как минимум сеошник и контент менеджер.

Из-за ошибки в .htaccess апач на каждый запрос отдавал 500-ю ошибку. Это я уже потом узнал. Сначала зашёл на сервер, сразу посмотрел изменения за последние сутки:

# find /home/bitrix/ext_www/site01 -mtime -1 -ls

Когда увидел в списке файлов .htaccess сразу на него подумал. Сходил на бэкап сервер, забрал оттуда предыдущую версию файла. Он очень большой, так что глазами разницу не видно. Сравнил так:

# sdiff /root/restored/.htaccess /home/bitrix/ext_www/site01/.htaccess

Увидел много изменений. Сразу вернул прошлую версию файла. Сайт ожил. Я посмотрел на внесённые изменения. Сходил, проверил синтаксис через публичный сервис:

http://www.htaccesscheck.com (полезный, стоит сохранить)

Забавное вступительное слово у сервиса:

"Sick of one silly typo in a .htaccess file causing your entire site to be broken?" - "Устали, что банальная опечатка в .htaccess, роняет весь сайт?"

Это такая фишка Апача. И плюс, и минус одновременно.

Сервис показал ошибку. Один url, куда был направлен 301 редирект, был некорректный по формату. Из-за этого Apache на все запросы возвращал 500-ю ошибку. Я удивился от этого. Не припоминаю, что сталкивался с этим раньше. Как-то нелогично. Одно дело давать ошибку на конкретный редирект, а другое руинить всю свою работу из-за него.

В общем, файл починил, сеошнику отправил ссылку на сервис, чтобы проверял свои редиректы, прежде чем добавлять их в .htaccess. Как защититься от этого, не знаю. Это уже не первый раз, когда прямой правкой сайта через админку ломают его работу. Теоретически, я конечно знаю, как это можно исправить. Но для масштаба текущего бизнеса это будет неоправданно большой бюджет. Простой даже в несколько часов некритичен и проблем не создаёт. Напрягает это только меня, что приходится вручную решать проблемы. Но, собственно, я для этого туда и нанят.

#bitrix #webserver #apache
👍176
​​На прошлой неделе мне нужно было поднять новый сервер для сайта на движке Bitrix. Практически всё время до этого я и все известные мне разработчики разворачивали готовое окружение от авторов фреймворка - BitrixVM. Это готовый инструмент с TUI управлением. В целом, всё было удобно и функционально. Не без отдельных проблем, но это частности. Главное, что актуальность всего совместимого ПО поддерживали сами разработчики Битрикса. И оно было у всех идентичное, что упрощало разработку и перенос сайтов.

BitrixVM построено на базе Centos 7, которая через пару недель прекратит свою поддержку. В итоге встал вопрос, а какое окружение ставить? Я бегло поискал, но не нашёл никакой конкретики на этот счёт. К чему в итоге пришли разработчики и какое окружение они рекомендуют использовать? Я хз.

В итоге потратил кучу времени и поднял всё вручную на базе Debian 12. Установил и связал между собой все необходимые компоненты. Вместо Nginx взял сразу Angie, чтобы удобнее было мониторинг настроить. Да и в целом он мне больше Nginx нравится. Решил написать эту заметку, чтобы получить обратную связь. У кого-то есть конкретика по этой теме?

Судя по всему, все решают эту задачу кто во что горазд. Я нашёл несколько репозиториев с настройкой окружения для Bitrix. Вот они:

🔥https://gitlab.com/bitrix-docker/server
https://github.com/bitrixdock/bitrixdock
https://github.com/bestatter/bitrix-docker
https://github.com/paskal/bitrix.infra

Не захотелось во всём этом разбираться, поэтому настроил сам. Там ничего особенного, просто компонентов побольше, чем у обычного веб сервера на php. И конфиги немного понавороченней из-за особенностей Битрикса. Не хотелось бы всё это поддерживать теперь самостоятельно. И сейчас думаю, либо писать статью, подбивать все конфиги и как-то это упаковывать в ansible или docker. Либо всё-таки подождать какое-то решение от разработчиков.

В процессе настройки нашёл у Битрикса скрипт, который позволяет проверить соответствие хостинга требованиям движка. Раньше не видел его, да и необходимости не было. Забирайте, кто будет решать такую же задачу, пригодится:

Скрипт bitrix_server_test

Там заметка старая, но скрипт регулярно обновляется. Текущая версия от 29.02.2024.

#bitrix
👍89👎3
Пока я был в отпуске, пропустил важную для меня новость. Ну как важную. Была важной, а теперь уже не очень. В общем, компания Битрикс наконец-то выпустила обновление своего окружения VMBitrix 9.0.0. И как вы думаете, на базе какой операционной системы? .... Барабанная дробь .... CentOS Stream 9 😱.

Этим они меня удивили. Самый неудачный выбор, который только можно придумать. Напомню, что до этого окружение было на базе Centos 6 и 7. 7-я версия уже EOL, так что они переехали на Stream. Как я понял, просто поленились и пошли по самому простому пути. Я ни разу ни у кого не видел в проде Centos Stream. Соответственно, не понятно, для кого они это выпустили. Ожидал увидеть Debian или Ubuntu, на худой конец Rocky или Alma, но надеялся на Docker образы.

Поясню, что VMBitrix это готовое преднастроенное окружение для запуска сайтов на базе Bitrix, а так же CRM Bitrix24. Сам сайт, в принципе, всё равно на чём запускать. Он заработает практически на любом хостинге на базе Nginx + Apache + PHP. А вот с Bitrix24 посложнее, потому что там пуши. Настраивать самостоятельно хостинг под него утомительно. Не хочется тратить на это время. Готовое окружение эффективно решает эту задачу, плюс некоторые другие типа многосайтовости, получение сертификатов и т.д. В целом, пользоваться удобно, потому что, во-первых, экономит время, а во-вторых, у всех одинаковое окружение. Это упрощает разработку и перенос продукта.

Я для себя эту задачу уже решил и настроил всё в Debian 12 на базе Angie вместо Nginx. Настройки уже обкатаны, веб сервер работает пару месяцев. Планировал статью написать, но не знаю как по времени сложится. Особо некогда. Если вы работаете с Ubuntu, то рекомендую вот этот материал:

CRM Битрикс-24 на веб-окружении под Ubuntu 24.04, c поддержкой PUSH и многосайтовости

Это сайт хорошего специалиста. Я с ним пересекался на одном проекте. Если вам нужен проект на Битриксе, рекомендую. По стоимости будет недёшево, но и результат будет хороший в отличие от многих других вариантов. Мне есть с чем сравнивать, так как с Битриксами работаю последние лет 10. Сейчас уже сильно меньше, а лет 5 назад постоянно был вовлечён в разработку. Буквально на днях обращался человек, просил посоветовать кого-нибудь для разработки под Битрикс, потому что уже намучался и отчаялся найти хорошего исполнителя. Это типичная история для тех, кто ввязался в разработку на базе Bitrix. Абсолютно (без преувеличения) все, с кем я пересекался по этой теме, просили посоветовать хорошего разработчика.

Вот, кстати, сама новость про VMBitrix 9.0.0:
https://dev.1c-bitrix.ru/community/forums/forum32/topic159152/
Там есть все технические подробности.

Можно считать, что VMBitrix больше нет. Не знаю, кто будет себе разворачивать его в прод на базе Centos Stream. Для разработки программистам, наверное, сойдёт, но потом встанет вопрос с переносом в прод. Предвижу истории, когда разработчик будет говорить, что у него всё работает, а на проде будут ошибки. Я сам уже сталкивался с такими моментами, потому что много мелких нюансов по настройке веб сервера, прав доступа, хранения сессий, передачи заголовков, IP адресов и т. д. Если разработчики совсем не понимают в администрировании, то они нормально перенести не смогут.

#bitrix
4👍82👎12
Знакомый попросил прикинуть небольшую инфраструктуру, чтобы развернуть self-hosted версию CRM Bitrix. Мы раньше с ним уже делали подобное, так что я собрал плюс-минус проверенный вариант, который успешно работал в прошлом. Да и сейчас наверное работает.

Чтобы добро не пропадало, решил и с вами поделиться. Кстати, если кто-то будет готов настроить подобное, напишите мне в личку, я сведу с заказчиком. У меня нет возможности всё это сейчас реализовать. Чего-то принципиально сложного тут нет. Надо просто всё аккуратно сделать.

Я предложил 2 сервера в аренду, если не надо HA (High Availability). Если надо HA, добавляется третий, но тут допустимо без него.

Арендуются 2 выделенных сервера под бюджет и потребности. Достаточно хотя бы двух дисков на каждом. Собираем там RAID1 на Mdadm, поверх ставим Proxmox VE. Тут же на гипервизоре настраиваем firewall, пробросы портов и NAT для виртуальных машин. Можно и в отдельной виртуалке шлюз сделать, но тут у нас простая история, можно и так.

🗄 На первый сервер ставим 3 виртуалки:

1️⃣ Прокси на базе Nginx/Angie в режиме proxy_pass. Весь HTTP трафик направляем туда и дальше раскидываем по сервисам. Всё остальное закрываем файрволом на гипервизорах. Если нужно ограничить доступ к инфраструктуре, тут же можно настроить VPN (WG или OpenVPN). Или вынести в отдельную виртуалку. Я обычно выношу, но не уверен, что в простых случаях это реально нужно. Немного переусложняет инфраструктуру, плодя дополнительные сущности.

2️⃣ VMBitrix. Тут будет работать сам Битрикс в своём стандартном окружении. Больше ничего ставить не рекомендую.

3️⃣ Виртуалка с бэкапом. Тут будет храниться локальная копия на уровне файлов и дампов субд (если по размеру пролезут, иначе бинарные бэкапы) для быстрого восстановления, если на VMBitrix что-то случится из-за червя, вируса или ошибки разработчика. На уровне виртуальных машин данные изолированы, так что зловред или ошибка не затронет их, зато можно быстро восстановиться. Резервные копии делать инкрементными. Я бы использовал rsync, но можно любое другое решение, не принципиально.

🗄Второй сервер используется под бэкапы, мониторинг и логи. Предлагаю такие виртуалки:

1️⃣ PBS (Proxmox Backup Server) для бэкапа на уровне виртуальных машин виртуалок с первого сервера. Думаю, имеет смысл бэкапить только прокси и VMBitrix.

2️⃣ Мониторинг на базе Zabbix, Prometheus, VictoriaMetrics. Не принципиально, что больше знает и любит исполнитель или тот, кто будет поддерживать.

3️⃣ Сбор и анализ логов, особенно с веб серверов (прокси и VMBitrix). Ну и все остальные тоже. Решение также на выбор исполнителя, кто что больше любит и знает: ELK, Loki, VictoriaLogs.

Отдельно где-то арендуется обычная VPS с большим диском и туда передаются бэкапы сырых данных с виртуалки с бэкапами на первом сервере. И туда же копируются все конфигурации, особенно мониторинга и логов. Сами данные этих сервисов в рамках данной задачи не представляют большой ценности, я бы не бэкапил.

Остаётся ещё вопрос хранения кода. Если будет активно идти разработка своими силами, то на первый сервер можно добавить отдельную виртуалку под Git и её тоже бэкапить в PBS.

Что думаете насчёт предложенной схемы? Как бы решали такую же задачу?

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#bitrix
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍159👎9
Коснулся на днях темы Bitrix и узнал некоторые подробности окружения, где его удобно запускать. Я последний раз разворачивал свежий Битрикс прошлым летом. И на тот момент компания предлагала автоматически развернуть окружение на базе системы Centos Stream 9, которую на практике в проде никто не использует. Я тогда удивился этому событию и собрал сам окружение на базе Debian 12.

Сейчас этот вопрос уже решён. Компания Битрикс представила рабочее окружение VMBitrix на базе следующих систем:

- Alma Linux 9
- CentOS Stream 9
- Oracle Linux 9
- Rocky Linux 9

Честно говоря, я ждал и надеялся, что будет переход на deb дистрибутивы, в частности Debian. Это упростит и поддержку отечественных систем, в частности Astra Linux, которая тоже на deb пакетах живёт. Но этого не случилось.

Если же вам нужно окружение именно на Debian, то можно собрать самостоятельно на базе их же свежей статьи:

Настройка окружения для Debian 12

Мне такое решение ближе, потому что в своей работе полностью перешёл на Debian, но тут есть подводные камни, особенно если работаете с внешними подрядчиками или нет взаимопонимания со своими разработчиками. Если начнутся какие-то проблемы, то у разработчиков будет большой соблазн обвинить сервер и окружение в частности в том, что там что-то не так настроено. Я с этим сталкивался лично не раз, поэтому несмотря на свои предпочтения, лучше разверну Битрикс в их же bitrix-env, чтобы просто снять с себя эти вопросы.

Окружение это доступно теперь в двух форматах:

1️⃣ Готовый образ VM под все популярные системы виртуализации: VirtualBox, VMWare, HyperV, Vagrant, ProxmoX (почему-то написан именно так, с заглавной X). Не рекомендую использовать образ VM. Когда что-то пойдёт не так или банально место на диске закончится (там 50 ГБ), столкнётесь с проблемами. Мне так по поводу Zabbix регулярно пишут. Разворачивают его из готового образа, а потом не знаю, что там с ним делать и как решать проблемы. Лучше установите чистую систему так, как вам нужно, и разверните из скрипта.

2️⃣ Скрипт bitrix-env-9.sh, который разворачивает окружение на вашем сервере. Я развернул и посмотрел на него на Rocky Linux. Выглядит установка вот так:

# dnf install wget
# wget https://repo.bitrix.info/dnf/bitrix-env-9.sh
# chmod +x bitrix-env-9.sh
# ./bitrix-env-9.sh

Установилось не с первой попытки. То один, то другой нужный пакет не мог загрузиться с зарубежных репозиториев. В итоге с 3-й попытки всё получилось. Ждём минут 10 и получаем преднастроенное окружение на базе следующих компонентов:

- Nginx + Apache2 + PHP 8.4
- Percona Server 8.4
- Redis или Memcached
- Поиск Sphinx

После установки достаточно создать пул в разделе 1. Create management pool on the server и скопировать в директорию /home/bitrix/www скрипт bitrixsetup.php для установки новой версии продукта, либо восстановить его из бэкапа.

Я проверил на виртуалке с 1CPU и 2GB памяти. Тестовый ненагруженный портал нормально установился и запустился.

В целом, всё осталось плюс-минус как и раньше, ещё лет 10 или более назад, только на актуальном ПО. Принципиальных изменений нет. У Битрикса всё стабильно. Корпоративный портал содержит 211 тысяч файлов 😱 Развернул из любопытства демо версию.

#bitrix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍69👎5