|
Алексей Чебанов, тема закрыта.
|
|
|
|
|
|
С точки зрения скорости, денег и требований к железу в 2025 году ответ однозначный: 19 отдельных сайтов (у каждого свое ядро и своя база) будут работать быстрее и надежнее, хотя на первый взгляд это кажется менее удобным.
Вот подробное сравнение для ситуации с Bitrix на «голом» Linux: 1. Скорость работы (TTFB и генерация страницы)
|
||||||||||||||||
|
|
|
|
Использование одного ядра Bitrix и одной базы данных для управления 19 сайтами реализуется через встроенную технологию «Многосайтовость». На 22 декабря 2025 года это стандартное решение для крупных сетей, но оно имеет критические последствия.
1. Требования к серверу (Минимум для 2025 года) Обычный виртуальный хостинг не справится. Вам понадобится выделенный сервер (Dedicated) или мощный VPS/VDS. Процессор: Минимум 8–12 ядер (Ryzen 7/9 7000+ серии или современные Xeon), так как Bitrix требователен к частоте на одно ядро. Оперативная память (RAM): Минимум 32–64 ГБ. Большой объем нужен для кэширования (Memcached/Redis) и стабильной работы MySQL/PostgreSQL. Дисковая подсистема: Только NVMe SSD. Объем базы данных и файлов (особенно картинок) для 19 сайтов быстро вырастет до сотен гигабайт.· БД: Обязательная настройка индексов и оптимизация my.cnf. 2. Технические последствия Единая точка отказа: Если упадет база данных или произойдет критическая ошибка в коде ядра, лягут все 19 сайтов одновременно. Раздувание базы данных: Таблицы поискового индекса (b_search_content), статистики и логов будут расти в 19 раз быстрее. Это замедлит выполнение SQL-запросов. Конфликты обновлений: При обновлении модулей или ядра Bitrix изменения применяются сразу ко всей сети. Если кастомный код на одном сайте несовместим с обновлением, проблемы могут возникнуть на всех остальных. Сложность бэкапа: Создание резервной копии всей системы будет занимать много времени и места. Восстановить один конкретный сайт из общего бэкапа будет крайне сложно. Ответ разработчиков bitrix: ( неже ответ который я считаю не развернутый или невминяемый ) 1. Указанная «единая точка отказа» не является следствием выбранной схемы многосайтовости, а представляет собой стандартное свойство любой архитектуры, в которой сайты работают на одном сервере и используют общую базу данных. В случае отказа MySQL недоступность затронет все сайты (ВОПРОС БЫЛ НЕ ПРОПАДЕНИЯ СЛУЖБЫ MYSQL, ПАДЕНИЕ ЛЮБОЙ ОБЩЕЙ ТАБЛИЦЫ) вне зависимости от того, реализованы они как многосайтовость Bitrix или как отдельные проекты на одном сервере, поэтому данный риск не относится к недостаткам текущего решения и устраняется организационными мерами - резервным копированием, мониторингом и при необходимости репликацией БД. 2. Критические ошибки в ядре не возникают спонтанно и, как правило, являются следствием некорректных обновлений или изменений. ( опять мутный ответ, ведь вопрос был другой, на сколько это эфективно, затронет одна ошибка все сайты или нет ) В рабочем процессе обновление ядра и модулей Bitrix выполняется предварительно на тестовом сайте, что позволяет выявить возможные несовместимости и исключить их попадание в продакшен. Такой подход является стандартной практикой и минимизирует риски возникновения критических сбоев на всех сайтах. 3. Рост базы данных определяется объёмом контента и посещаемостью, а не количеством сайтов. При корректной настройке очистки и кэширования размер базы данных остаётся под контролем ( опять уход куда-то воблока, вапрос был не как решать проблему а являится ли это проблемой как таковой, эфективно ли это ). 4. Все сайты используют единый шаблон и общую кодовую базу без модификаций ядра. Обновления системы выполняются централизованно и не создают дополнительных рисков по сравнению с поддержкой одного сайта ( ахахах, тут я вооще ржал как конь... т.е. многосайтовость даже лдче при обновлении чем один сайт.. ). 5. Создание резервной копии занимает столько же ресурсов, ( опять уход в некуда, вопрос был на сколько эфективны бекапы если нужно откатить один сайт .. а не все сайты ) сколько и на простом сайте с аналогичным кол-во контента. Так же резервное копирование выполняется на уровне сервера и охватывает файлы и базу данных целиком. Это наиболее надёжный и распространённый способ защиты данных на VPS. Восстановление при авариях выполняется быстро и предсказуемо. ( лично я с этим не согласен и ответ не был дан... ) прошу прокасультировать.. |
|
|
|
|
|
Разобрался, решение простое, сначала обновим nginx
статья написана с ошибкой, но я поправлю.. необходимо чтобы у вас был установлен пакет (в статье о этом забыли...видимо ) yum install pcre-devel -y sudo yum install -y brotli brotli-devel далее по статье все верно. Но нам нужно включить в это пакет ModSecurity-nginx, скачиваем его и переходим к папке cd nginx-1.26.3(у меня стоит этот у вас может быть любой) ... включаем наш пакет --add-dynamic-module=../ModSecurity-nginx --with-compat &&./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-openssl-opt=enable-tls1_3 --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-file-aio --add-module=../nginx-push-stream-module --add-module=../mod_zip --add-module=../headers-more-nginx-module --add-dynamic-module=../ModSecurity-nginx --with-compat --add-module=../ngx_brotli --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' && make && make install все, прекрасно работает, атаки отражает, на лету фильтрует трафик ! . |
|
|
|
|
ngx_limit_req_zones = [^"]+ #badstrings = file_put_contents|file_get_contents|base64_decode|js_error.txt failregex = ^<HOST> -.-.*(GET|POST|HEAD).*(file_put_contents|file_get_contents|base64_decode|js_error.txt).* ignoreregex = datepattern = {^LN-BEG} Ваше правило не сработало, только в таком виде все заработало.. |
|||
|
|
|
|
Написал скриптик, определение googlebot YandexBot YandexMetrika YandexRenderResourcesBot YandexTurbo YandexWebmaster YandexComBot , если это паразитный БОТ то скрипт определит замаскированного БОТА может кому пригодится, обязательно в bitrixbm установите
yum install host - без этой утилиты работать не будет, не знаю почему из пакета её убрали.. странно назовите скрипт как хотите и в cron его crontab -e * * * * * root /usr/google.sh. Письмо приходит о блокировке только при добавлении правила iptables, не спамить.
скрипт готовый к использованию, имена роботов можете добавить сами по желанию, я указал только тех, что делают кучу запросов в секунду.. |
|||
|
|
|
я надеялся получить другой ответ, что-бы понять, как это было возможно взломать, может у кого получится декодировать строку и будет понятна уязвимость, на данный момент поднял бекап и восстановил работу сайтов, так-же временно прописал chattr +i /home/bitrix/ext_www/ на все паки, заморозил от изменений все, решение временное но хоть, что-то. обернул все GET запросы в обертку в NGINX , код сырописный , ограничил длину строки GET и POST . так-же установил fail2ban и написал два фильтра, отлавливаю 404 на обоих и баню . в nginx.conf добавил limit_req_zone $binary_remote_addr zone=shield:10m rate=3r/s; и bitrix.conf location / { proxy_pass $proxyserver; limit_req zone=shield; try_files $uri $uri/ =404; } за 12 часов было забранено 30 адресов IP с похожими запросами ... Что еще можно сделать? |
|||
|
|
|
|
03.03.2025 был взломан сайт сервер на сервере bitrixbm, далее были получены права root , грохнуто было все. В логах сервера был обнаружен вот такой запрос GET
|
|||
|
|
|
|
Перед установкой модуля ngx_http_geoip2_module.so в nginx ,
1. необходимо сначала снести yum remove nginx Слетят все конфиги, поэтому луче сначала все конфиги забэкапить. 2. Устанавливаем модуль Nginx с модулем ngx_http_geoip2_module. sudo yum -y install sudo yum install nginx nginx-module-geoip2 Затем добавьте следующее в начало вашего файла /etc/nginx/nginx.conf: load_module modules/ngx_http_geoip2_module.so; service nginx reload далее настраиваем Теперь пришло время рассказать NGINX о наших базах данных GeoIP. В nginx.conf, желательно в http { ... }разделе:http { ... geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb { auto_reload 5m; $geoip2_metadata_country_build metadata build_epoch; # $geoip2_data_country_code default=US source=$variable_with_ip country iso_code; $geoip2_data_country_code default=US country iso_code; $geoip2_data_country_name country names en; } geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb { $geoip2_data_city_name default=London city names en; } .... fastcgi_param COUNTRY_CODE $geoip2_data_country_code; fastcgi_param COUNTRY_NAME $geoip2_data_country_name; fastcgi_param CITY_NAME $geoip2_data_city_name; .... } |
|
|
|
|
|
Здравствуйте, очень надоели боты со стран китай, украина.. и.т.д. пытаюсь установить модуль в Nginx > ngx_http_geoip2_module.so -Установка модуля GeoIP2. Перерыл все темы, пробовал варианты которые нашёл, не устанавливается модуль на bitrixbm. На данный момент все реализовано пока на уровне PHP сайт . Если кто-то уже устанавливал или есть мануал, как установить его в BM прошу поделиться..
|
|
|
|
|