- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток!
Помогите с разработкой архитектуры хранения большого количества сайтов. В наличии есть мощный сервер с панелью управления сайтами. Количество сайтов насчитывает около 10000 привязанных к CloudFlare. Все сайты содержат лэндинги написанные на PHP, и файловая структура каждого сайта почти не меняется. С недавних пор началась проблемы с сервером с потерей доступности, и мы пришли к выводу, что панель не выдерживает такое количество сайтов. После неудачных попыток решить проблему, мы решили уйти с панели и перейти на чистый LEMP стек (Nginx, PHP без Mysql), либо что-то лучше. В нашем будущем архитектурном решении необходима высокодоступность всех сайтов, отказоустойчивость. В свою очередь я нашел решение на основе Glusterfs, где можно реализовать распределенную файловую систему, путем объединения 2-3 серверов в кластер с репликацией всех сайтов, а в качестве балансировщика можно использовать CloudFlare Load Balancer. Хотелось бы услышать иные подходы для решения данной проблемы.
Большое спасибо за ответы.
Помогите с разработкой архитектуры хранения большого количества сайтов.
Вам достаточно VPS за USD 2 (два) в месяц в хорошем месте.
а в чём заключалась "потеря доступности"?
Нам очень критично, что бы сайты, который находились на сервере были всегда доступны.
Столкнулись с проблемами отключение/перезагрузка сервера, аномальное зависание PHP сокета. Также было дело, когда добавляли домены через API, и nginx повис пока не перезапустили. Все эти проблемы привели к потере времени а это в свою очередь потеря $.
Поэтому стоит задача, что бы когда с одним сервером что то произошло и он перестал быть доступный, весь трафик переключился на другой (репликация/зеркало). С помощью CloudFlare можно организовать балансировщик, но вот по внутренней архитектуре хз, либо синхронизация файлов + nginx конфигов или объединение 2-3 серверов в один том с репликацией файлов.
В целом, вам надо 2 виртуальных сервера в разных ДЦ у одного провайдера и один плавающий IP и чтоб у хостера было api для работы и скрипт который будет мониторить сервера и в случае падения того на ком сейчас назначен IP переназначать на живой. Если сложнее то вам нужно затолкать ваши сайты в контейнеры и есть решения типа кубернетес которые умеют разворачивать контейнеры на живых серверах автоматом. Ну либо самое простое отказаться от PHP, сделать лендинги статикой и развернуть на CDN и подобных штуках. Если есть заявки там формы и прочее можно развернуть их в облачных функциях (лямбдах). Это самые тривиальные наверное решения
Я бы, на месте ТС, купил дедик, порезал его на ВПСки, из расчета по 100 сайтов на ВПС. А с панелью управления сайтами не заморачивался, а всё реализовал бы через BrainyCP. Через неё же реализовал квотирование процессорной нагрузки на каждый виртуальный сервер.
Аппаратно тоже можно подойти и купить не один дедик, а десяток-другой на колокейшене, или вообще свою стоечку забабахать "под крышей дома своего". Слыхал, сейчас в Китае можно выписать на Али готовую сборку железа со всеми бесперебойниками и генераторами. Размер стойки примерно соразмерен холодильнику, - хоть на балконе ставь.
Ecdrosil #:
Столкнулись с проблемами отключение/перезагрузка сервера, аномальное зависание PHP сокета. Также было дело, когда добавляли домены через API, и nginx повис пока не перезапустили.
somaxconn значение стоит по умолчанию?
Я бы, на месте ТС, купил дедик, порезал его на ВПСки, из расчета по 100 сайтов на ВПС
ТС вроде хочет как проще, а не как сложнее =)) а когда (ни если) винты сдохнут простоя типа не будет? =))
Через неё же реализовал квотирование процессорной нагрузки на каждый виртуальный сервер.
Зачем вам квотировать свои же сайты? Запускаете каждый сайт в своем контейнере например докером и в целом виртуалки не нужны совсем, у докера в отличии от KVM например нет оверхэда на гипервизор
somaxconn значение стоит по умолчанию?
Вот это надо уточнить у админов севера
В целом, вам надо 2 виртуальных сервера в разных ДЦ у одного провайдера и один плавающий IP и чтоб у хостера было api для работы и скрипт который будет мониторить сервера и в случае падения того на ком сейчас назначен IP переназначать на живой. Если сложнее то вам нужно затолкать ваши сайты в контейнеры и есть решения типа кубернетес которые умеют разворачивать контейнеры на живых серверах автоматом. Ну либо самое простое отказаться от PHP, сделать лендинги статикой и развернуть на CDN и подобных штуках. Если есть заявки там формы и прочее можно развернуть их в облачных функциях (лямбдах). Это самые тривиальные наверное решения
Я думал о докере и кубе, но вот задача еще есть как кластеризировать nginx для передачи конфигов между серверами. При добавлении домена на первом должна происходить синхронизация. В Pro версии есть что то подобное, но стоит больших денег за одну функцию. пришел к выводу только костылями через скрипты. От PHP к сожалению отказаться не можем.
Я думал о докере и кубе, но вот задача еще есть как кластеризировать nginx для передачи конфигов между серверами.
Я не понял про что вы, если вы про кубер то не понял при чем тут конфиги nginx, если про 2 сервера то объединяете их в локальную сеть и самое банальное рсинкаете. Если у вас в целом докер используется, то вам надо почитать про traefik он умеет дискаверить без перезагрузок и синхронизаций