- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый вечер.
Имеется сайт, по сути онлайн каталог на русском языке (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.
Не тем вы занимаетесь, имхо