redeyer

redeyer
Рейтинг
102
Регистрация
27.01.2010
Должность
linux system admininstrator
Интересы
computer, programming, linux, webdesign, copyrighting, seo, psyhology, psyhic, books, music (meloman - metall, classic, russian rock, instrumental) ,guitar
Администрирую сервера. Сделаю аудит и скажу где тормозит. А потом сделаю чтоб всё летало!

В данном случае нет принципиальной разницы - для отказоустойчивости это или для распределения нагрузки. В любом разе оба сервера должны быть готовы принимать соединения.

Чтобы избавиться от точки отказа, принимающей нагрузку, есть ещё вариант с виртуальным сетевым интерфейсом с IP, который переключается с одного сервера на другой. Heartbeat обычно используют для настройки такой штуки. Это легко настроить и хорошо работает, если вы контролируете сети, в которых у вас работают системы.

Но очевидно, что у разных хостеров вам никто не даст это настроить, потому как вы не сможете использовать один IP на обеих системах. Поэтому остается только простая dns-балансировка.

Не морочьте голову одним прокси, точкой отказа. Как работают те же mail.ru, vk.com, google? Вот так:

Это просто dns-балансировка - несколько A-записей с разными адресами. Вот обсуждается как работает dns round-robin.

silicoid:
Если у ТС сайт крутится на впс и php > 5.4, то можно установить зенд опкэш. это примерно на 60% сократит время генерации страниц

апд. но там и так около 200мс время генерации. так чот дело не в скорости исполнения скриптов

Там в первую очередь картинки надо оптимизировать. И google pagespeed, и отладчик хрома показывают в чем проблема.

Но 200-300 ms TTFB перед отдачей статики - это жутко долго. Нужно просто настроить чтобы nginx отдавал статику напрямую с диска, не обращаясь к бэкенду. Не только изображения, там и js, css тоже очень много и всё это отдаётся через php (apache?) похоже. Кроме того, есть битые css самого woocommerce, которые нужно отключить.

Клиентское кэширование тоже не настроено полностью, судя по тесту Google.

Была проблема с трафом из Google. Решилась. Вкратце - отмена мусорных ссылок, смена домена, добавление контента, простановка релевантных ссылок, внутренняя оптимизация. Подробно расписано выше по ссылке.

Andreyka:

Я не люблю халтуру и никогда не втыкаю wp-supercache если есть возможность кешировать через nginx.

Ну что ж, отрадно это слышать, если действительно так. Я тоже халтуру не жалую, но, по правде сказать, действительно лень было разбираться в тонкостях настройки кэширования. Но недавно всё же сделал это.

Andreyka:
Почитайте статью может научитесь.

Да, я заглядывал уже на ваш сайт, и узнал для себя ништяки кое-какие. За ссылку лойс вам. Хорошая статья, действительно кое-что прояснилось для меня, чего ранее не понимал.

Но, кое-что у вас там можно улучшить.

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {


root /images;

}

Вот эта конструкция будет слабо работать. Согласно этому конфигу, nginx будет напрямую отдавать только то, что лежит в одной папке. На большинстве сайтов, изображения разбросаны по разным папкам. И уж тем более js и css там не окажется. Тот же wp, о котором мы говорим в контексте этого обсуждения. Поэтому, я бы рекомендовал заменить её на такое:

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {


try_files $uri $uri/ =404;

}
daga:
Сервер centos Nginx, 25гб памяти.

долго скрипты обрабатывает, выдает ошибку 500 периодически и
Database Error: Unable to connect to the database:Could not connect to MySQL

Это надо смотреть. Может nginx, а может что-то ещё. 25гб - наверное не памяти, а диска? Сообщение лишь о том, что php не может подключиться к mysql. А почему не может - это нужно смотреть логи самого mysql. Сначала нужно выяснять именно это. Nginx здесь вряд ли, если и может быть "виноватым", то в самую последнюю очередь.

WapGraf:
redeyer, тут вы неправы. Не то же самое. При кэшировании на стороне nginx запросы к backend не проходят. То есть нету запросов к Apache, php. А сам nginx способен переварить очень много и без нагрузки на сервере.

Я это понимаю. Буквально сегодня для другого клиента отлаживал конфиг с кэшированием ответов бэкенда с очень тяжелым приложением на ruby. Так там приложение отвечает 5-20 секунд, и без этого кэширования просто никак не обойтись.

Но это немного сложнее настроить и отладить, чем просто воткнуть wp-supercache. Соответственно, это будет дороже для клиента.

Andreyka:
А зачем использовать wp-supercache, если nginx прекрасно кеширует сам по себе? Вы уж используйте в полной мере те инструменты, которыми пользуетесь.

Сложнее в настройке. Под wp, скорей всего, отлаживать надо чтобы нормально работало, админку не кэшировало и.т.д. А плагин, в принципе, делает то же самое, но меньше заморочек. Для каждого сайта свой кэш, которым админу сайта легко управлять, в случае чего.

Для больших нагруженных проектов согласен - можно юзать кэширование динамики самим nginx.

daga:
...
Если на сервере сайты работают, только кто-то мускул периодически перегружает.
Как это можно отследить?

Скорей всего сама ОС рестарт делает при крашах. Посмотрите системные логи (/var/log/syslog - если deb-based система или /var/log/messages - если rpm-based - centos). Хотя, в centos такой штуки насколько я знаю, нету. А вот в ubuntu вполне может быть. Там в /etc/init/mysql.conf есть настройки respawn - это вот оно. Какая ОС?

В общем, читайте логи. Системные и самой СУБД ( /var/log/mysql* ) Там всё написано - кто или что, когда и почему упало или было перезагружено. Ещё можете выключить mysql и запустить его не сервисом, а просто из консоли - mysqld & . В этом случае оно при падении скорей всего так и останется лежать.

Andreyka:
У вас нет никаких фактов, а только несколько картинок.

Спасибо, подняли настроение с утра. 😂

Кстати, вчера разговаривал с клиентом, этот VPS за вчерашний день выдержал наплыв ~10k событийного трафа с глубиной просмотра 2 + возросшую активность поисковых ботов. При этом страницы открывались так же быстро, средняя утилизация ресурсов около 50-60%.

В общем, всё, как я и прогнозировал в кейсе, расписанном на answIT'e - vps минимального тарифа ( 1 cpu, 1 gb RAM), настроенный таким образом, будет держать нарузку в 15-20к трафа на стандартном wordpress с wp-supercache.

Всего: 339