Что про ISP, там можно сделать "apache2-mpm-itk, но в панели нет его; хочу иметь системной версий php 74" в два клика делается.
А БД обновляется тупо подключением нужного репозитария и yum update всё, это если коротко. Обновляю там БД каждый раз, никаких проблем нет.
Все панели ставятся на чистую ОС, это всегда написано в инструкции. Бесплатная панель, бесплатной рознь.
Есть BrainCP там свои репозитарии и есть всё в одном флаконе, но надо сидеть разбираться.
Есть hestiacp это более развитая VestaCP
Есть в конце концов FastPanel, но там нельзя менять системный PHP, только с FastCGI работать, но не критично.
Но повторюсь, всё ставиться с 0 на чистую систему.
И зависеть от оверсела хостера ?
За цену нормального VPS (5.000) можно взять выделенный сервер !
А нормальный сервак стоит от 15 000, давайте ещё поиграем выдуманными цифрами и проблемами?
Скорость это отдельная тема, у тебя мог просто запрос закэшироваться или данных очень мало.
Если хочешь работать с поиском FULLINDEX, то НЕ совмещай в одном запросе выборку и FULLINDEX. БД, по сути, не умеет использовать одновременно два разных типа индексов и поэтому будет страдать скорость в больших масштабах.
Тут ИЛИ сначала делаем выборку по параметрам т.е. используем обычные индексы и уже в полученных данных ищем нужные слова, Или наоборот, ищем нужные слова и кромсаем уже из них.
Конечно можно хрен на это забить, но при масштабировании будет значительная потеря скорости. Но если масштабов не планируется, хотя бы на 2-3ГБ размер текстов, тогда можно и позабить 😊
Что советуете для битрикса 50K товаров с посещаемостью 1,8 - 2k чел в день?
VDS берём на SSD или nvme с памятью 16 ГБ, настраиваем как надо и живём радостно забывая про всякие бегеты и тайвебы.
Взять можно в любой конторе которая занимается VDS.
Вы имеете в виду алиасы доменов? То есть когда в одну папку смотрят разные домены? Если так, то в том же DirectAdmin это есть и сертификаты выдаются на все домены.
Нет, не зеркала. Зеркала это другое и про другое, тут же речь про отдельные сайты с указанием им моей папки, которую надо.
Вообще моё мнение, панель должна мне помогать и выполнять, что мне надо. Кто не понимает или там "ой да кому это надо?", пусть работаю на виртуальных хостингах, там всё за них решено.
Небольшой отзыв от клиента из личных сообщений форума:
А ещё вам поведаю интересную историю об оптимизации.
Обращается клиент, нужно настроить сервер с ISP5 панелью и 86 сайтами на Worpdpress. Сайты многостраничные сателлиты, статьи + картинки, но их очень много на каждом сайте.
Без проблем начинаю настройку, с клиентом не в первый раз работаем. Провожу все манипуляции, но замечаю, что MySQL по ощущением «биткоины майнит», но при этом никаких запросов долгих нет. Не зная специфики сайтов, я ничего не могу сделать, но север работает без перебоев и сайты открываются моментально.
Проходит неделя, новый день начинается с сообщения от клиента: «Сервер стал хуже работать, чем до настройки и сейчас сайты вообще не доступны.»
И показывает такую картинку:
Что-то тут не так, думаю я. Начинаю разбираться, подключаю мониторинги, логи и сразу вижу, что кто-то ищет на всех сайтах уязвимости. Бот работает без стеснения в 100 потоков для каждого сайта. При такой нагрузке всё падает. Я быстро блокирую подсети ДЦ откуда с сервера идут запросы. Серверу стало легко.
Дальше наблюдаю, что долбят XMLRPC.php, это стандартная вещь у сайтов на WP, поэтому блокирую этот файл через nginx для всех сайтов сразу.
Ещё выясняется, что всякие боты индексные также не утруждают себя в лимитах и парсят всё и сразу. Они также уходят под «нож».
Что в итоге? Да, нагрузка спала, но MySQL, походу, перешла с «биткоинов» на «эфир» и продолжает майнить.
Ну такого не может быть, у нас на всех сайтах стоит лицензионный WP Rocket, с выключенным переобходом. Никто не обновляет страницы, они бесконечно находятся в кэше. Что же делает MySQL?
Я начал долбить запрос: «SHOW FULL PROCESSLIST;», чтобы перехватить, хоть какой-то запрос. Через пару минут я вижу следующее:
SELECT p.ID,
IF(LEFT(LCASE(p.post_name), 6) = 'after-', 2, 0) +
IF(RIGHT(LCASE(p.post_name), 6) = '-after', 2, 0) +
if(INSTR(LCASE(p.post_name), '-after-'), 2, 0) +
if(LCASE(p.post_name) = 'after', 2, 0) +
if(INSTR(LCASE(p.post_name), 'after'), 1, 0) +
IF(LEFT(LCASE(p.post_name), 4) = 'mri-', 2, 0) +
IF(RIGHT(LCASE(p.post_name), 4) = '-mri', 2, 0) +
if(INSTR(LCASE(p.post_name), '-mri-'), 2, 0) +
И ещё 70 строк этого запроса.
Что это такое?! А это у нас дамы и господа, плагин «WP 404 Auto Redirect to Similar Post», который на запрос не существующей страницы пытается подобрать из текущих статей подходящие.
Теперь всё становиться на свои места.
Кто-то перебирает уязвимости, это 404 ошибки. Боты запрашивают очень часто не существующие страницы, это 404 ошибка. И на все эти запросы, плагин пытался подобрать подходящие статьи. Такие страницы не кэшируются и плагин работал в поте лица, делая дикие запросы в MySQL.
С клиентом договорились отключить плагин на всех сайтах т.к. он не несёт пользы, а только нагружает систему. Дальше картина нормализовалась и всё стало работать в штатном режиме:
У меня много всяких историй, не всегда есть время их детально оформить.
Кому было интересно и не читали историю про Sape, можете сделать этот тут:
https://searchengines.guru/ru/forum/997205/page7#comment_16361763
А многим ли клиентам это нужно, на самом деле? Фича полезная, но всё-таки большинство скриптов хранит файлы, либо в единой папке домена, либо на уровне ниже папки домена, разве нет? Что в ISP, что в DA, что в других панелях это не требует корректировки document root. Распишите кейс, когда нужно поменять на что-то прям совсем нестандартное.Кстати, в DA всё-таки можно менять document root на любой нужный, правда только на уровне админа.
Ничего НЕ стандартного нет. Мне надо переехать на новый домен, каждый из доменов должен получать свой сертификат от letsencrypt.org. В ISP5 я вообще не парюсь, добавляю новый домен в туже папку старого сайта и сертификат выдаётся на новый домен
В том же fastpanel это не возможно сделать, только городить симлинки.
обновил по стало всё нормально)
Странно, в интернете многие говорил об этой проблеме. Скорее всего это не баг ПО, а была фишка и только потом поняли, что это бесячая вещь и убрали её.