Насчёт CGI - да. Это даже не рассматриваю всерьёз.
А FastCGI я не раз сравнивал с модулем на разных хостингах. Даже простейший нагрузочный тест (http://loaddy.com/ и тп) и см логи, время загрузки, нагрузки на хостинг. Бывало что немного, а бывало что и ощутимо тормознее. Возможно, да, на тестируемых шаредах не заморачивались настройкой, но вот такой имеет место быть.
ЗЫ. Сейчас заглянул в логи, а там ошибок...
[fcgid:warn] [pid 3020] mod_fcgid: stderr: База данных WordPress возвратила ошибку Table 'wpcf_options' doesn't exist в ответ на запрос SELECT option_value FROM wpcf_options WHERE option_name = 'template' LIMIT 1,
[fcgid:warn] [pid 3249] (32)Broken pipe: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function,
Буду разбираться, но как-то не радует.
Всегда когда были проблемы со скоростью, это или CGI или скрипты самого сайта. Даже по умолчанию FastCGI работает быстро, вот жрёт памяти как конь это да.
Можно реализовать разные версии через тот же CloudLinux это уже высокие технологии и там в придачу не только разные версии идут но и другие приколюшки. Геморройно это делать руками там, но профит с этого не большой.
Ошибка вообще про WP и что таблицы нет. К панели это не относиться.
Ну FastCGI всё же хуже модуля апача. Много раз убеждался в этом на шаредах.
Вот как раз вчера первый раз в жизни установил FastPanel, включил FastCGI с 74, развернул ВП из старого бекапа (почти голый ВП, только настроенный) и.. при попытке обновить ВП получил 500. На новёхеньком сервере с 2 камнями и 2 гб памяти. Хотел на модуль апача переключить, а там 7.0. Саппорт порадовал ... но сделаю скидку на субботний вечер. :)
Я не замечал на практике сильных проблем с FastCGI, вот CGI это ппц. Может быть потребление памяти возрастает, но производительность отличная.
Про 500 ошибку и развёртывание старых бэкапов надо смотреть по факту. Просто многие не любят FastCGI т.к. его надо отдельно настраивать и регулировать
Там больше настроек, чем в mod_php, который полностью зависит от Apache.
Много раз убеждался в этом на шаредах.
Что про 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 это не возможно сделать, только городить симлинки.