- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер.
Имеется сайт, по сути онлайн каталог на русском языке (php, mysql, smarty) живущий на Debian (nginx + apache). Некоторое время как запустил версию на другом языке, в блюижайший месяц планирую еще несколько локализаций, в предположении что каждая локализация добавляет еще столько же посетителей (что реально далеко не так, но в сферическом приближении) нужно это все надежно разместить. Пока это дешевая VPS'ка :crazy: на которой диск подходит к концу, скоро переезжать.
Начитался много статей и даже запись вебинара прослушал по организации высоконадежных и продуктивных решений. Скажем так до Вконтакте мне очень далеко, но развесить все на 2-3 сервера в разных локациях не мешало бы, т.к. на одном сервере может быть пол часа технических работ либо упадет mysql до тех пор пока я об этом не узнаю. Хотелось бы чтобы это все долго работало стабильно, без переездов, а даже если что и падало - это терпело несколько дней, если я, например, в турпоходе без интернета.
Пока что в планах только удвоить MySQL (второй сервер уже есть), далее (после модификации движка для нормального многоязычного шаблона и сообщений) это будет еще и клон файловой системы с синхронизацией (один сервер главный, на нем изменения скриптов если че). Демоны (автоматическое обновление некоторой информации для сайта в кроне) остаются на главном сервере, на вторичном же запускаются в 2 раза реже нормы чтобы на случай если главный оффнется, данные обновлялись с адекватной периодичностью.
Потом скорее всего прикручу каждый nginx ко всем апачам-бекендам, а не только к "своему" на случай мало ли что, хотя еще ни разу не было чтобы упал бекенд а фронтенд работал.
Спереди будет стоять Roundrobin DNS на 2 А-записи nginx, а позже посмотрю статистику по локализациям (на субдоменах) и подумаю что куда развесить для уменьшения пинга.
Такой себе low cost cluster. Т.к. не имею привычки держать на VPS только 1 сайт, видимо имеет смысл по той же схеме на эту же пару (а в перспективе может быть и тройку) серверов развесить и еще минимум 1 посещаемый сайт (репликация все равно будет, не отключать же базы).
Собственно вопрос такой: у кого есть опыт настройки и долгосрочной эксплуатации mysql репликации, какие там возможны вылеты и как часто они реально случаются на практике?
Есть ли смысл использовать mysql-proxy или достаточно в php прописать mysql_connect 127.0.0.1 if mysql_error() connect IP2? Много ли mysql-proxy ест ресурсов?
Из-за особенностей сайта (что одного что другого) там нет такого чтобы были только SELECT запросы, обязательно есть Update, а если посетители что-то добавляют то и Insert. Держать Master-Slave репликацию и 2 коннекта к базе (1 на чтение и 1 к мастеру на изменение) по идее глупо и настраивать надо именно Master-Master. Я прав?
Читал что бывают частые ситуации, когда репликация слетает и для возобновления работы нужно вмешательство администратора. Насколько они реально часто возникают? Подымется ли она автоматически после рестарта VPS из-за технических работ в ДЦ?
В мануалах для Master-Slave по SSL указано что надо сгенерировать сертификат сервера на мастере, а на slave его использовать, настроив параметры ssl-ca ssl-cert ssl-key. Для Master-Master по SSL информации не нашел - нужно использовать одинаковые ключи или наоборот настроить разные? Позволит ли это mysql сервер?
Я так понял что репликация осуществляется через mysql-bin.log. До каких размеров этот файл может разрастаться и как часто он обнуляется? После успешной синхронизации обнуляется, а в случае потери связи растет пока не синхронизируется?
Спасибо.
извините, но АП. Не верю что никто не работал с репликацией
Начитался много статей и даже запись вебинара прослушал по организации высоконадежных и продуктивных решений. Скажем так до Вконтакте мне очень далеко, но развесить все на 2-3 сервера в разных локациях не мешало бы, т.к. на одном сервере может быть пол часа технических работ либо упадет mysql до тех пор пока я об этом не узнаю.
Если единственная причина, по которой вы решили задать столько вопросов, случайное нахождение этих статей - вам это не нужно.
уверен, что это будет самым полезным ответом :
Найдите один надежный, хостинг который не будет простаивать. И все.
Защититься от простоев невозможно, каждый хостинг рано или поздно присылает уведомления о технических работах.
Плюс репликация это лишний бекап и возможность поднять сайт (или не ронять его вообще) в случае краша диска на сервере, плюс это снижение нагрузки на 1 сервер и в случае географического разнесения - уменьшение пинга и времени закачки для конечных посетителей. А еще примитивный анти-ддос и еще много чего.
Metal_Messiah, саму репликацию mysql настроить тривиально. Для этого даже в phpmyadmin мастер настройки есть. Механизм репликации master-slave достаточно надежен, обкатан годами и постарше некоторых посетителей форума будет (14 лет ему, с версии 3.23.15 ).
Нетривиально же решить все остальные смежные вопросы. Один сервер - одна проблема. Два связанных сервера - восемь проблем !
Исходя из постановки ваших вопросов, я делаю вывод, что вам очень много придется разбираться с ними.
Оно вам надо ? Какая такая гигантская выгода в итоге получится от освоения этой массы смежных технологий?
Отказоустойчивость ? Да терпят все. Как только у %%хостернейм%% возникают проблемы, соответствующая тема затухает на следующий день же после исправления этих проблем.
Ну сходите в раздел Хостинг. Там раз в полгода такие темы возникают. А давно что-то не было их.
Т.е. рекомендуете делать master-slave и 2 постоянных коннекта от php 1 для SELECT (рандом мастер-слейв) и 2й для UPDATE / INSERT (только мастер) в предположении что когда мастер упадет сайт работать будет но не будет обновляться?
Metal_Messiah, мы сейчас о том как сделать рабочей конкретную технологию или о выборе архитектуры вообще?
Можете делать. А можете не делать. Оптимальный выбор зависит от разных факторов, которые вы тут не изложили.
но исходя из описания
и того как я оцениваю доходность и требования к отказоустойчивости у подобных сайтов, я рекомендовал бы этого не делать вообще. Так никто не делает.
Сколько раз в день у вас падает VPS и почему это вообще происходит ? Не проще ли поменять ?
Дублирование данных must have это я уже решил, хотя Вы правы, вопрос скорее о выборе архитектуры. Я думал Master-Master, но меня уже почти убедили что лучше Master-Slave, 2 веб сервера. Падал mysql 2 раза за последние 3 или 4 месяца, один раз упал утром, а я об этом узнал только вечером когда добрался до компьютера. Скорость закачки с сайта зависит от географии, а посетители грубо говоря со всего мира. Плюс мало ли вдруг забуду вовремя продлить один из серверов. Плюс мало ли будет ддос атака на один из них или на соседей, а ляжет половина ДЦ.
MySQL proxy ставить или нет? Можно же подключаться ко 2 серверу при отсутствии коннекта к первому, а чтобы не ждать mysql connection timeout каждый раз - при пропадании сервера писать файл-флаг, который будет периодически устаревать, а до тех пор php будет подключаться к альтернативному серверу - итого при проблемах только 1 страница будет открываться 30 секунд, остальные быстро.
У меня нет опыта работы с репликацией, потому и начал с того что прошу совета тех, у кого опыт есть.
Пока перевожу движок с php/mysql на mysqli. Будет 1 мастер и 2 слейва.
Вопрос выбора архитектуры: в php добавить проверку при проблемах с коннектом подключаться к другому серверу с кешем этого флага на файле (чтобы при падении каждое открытие страницы не ломилось на дохлый серв) + проверка куда слать запрос (запись в мастер, чтение на слейв) или подключаться только на localhost, где поставить mysql-proxy? Как лучше?
С одной стороны, пишут что mysql-proxy дает потерю производительности (хотя я не понимаю откуда, если и БД и прокси будут на одном VPS и пинг не должен расти), с другой мой самодел на php будет по сути повторять код mysql-proxy.
Не тем вы занимаетесь, имхо