Собственно в продолжение предыдущего поста Upgrade выделенного сервера на keyweb.ru — жестокие условия:
Так как «слёту» решить проблему путем апргейда железа у меня не вышло, а пойти на предложенные условия рука не поднялась (не люблю чувствовать себя лохом — а в кейвебе поначалу именно так предлагали себя почувствовать), остался ещё один эффективный для меня вариант (эффективный — потому, что ранее оптимизацией работы сервера я не занимался и 100% был уверен, что выполнив такую работу можно добиться значительного снижения нагрузки).
Не являясь гуру в unix администрировании я отправился гуглить — собственно нагуглил простой и эффективный способ снижения нагрузки — поставить фронтендом nginx — отказоустойчивый сервер для ресурсов с высоким трафиком.
О возможностях этого сервера я был ранее наслышан и сомнений в принятом решении у меня не возникло.
Сказано — сделано:
Поставил из портов nginx, снял индейца с 80ого порта — поставил nginx слушать 80й и обрабатывать всю статику — динамику перенаправил апачу.
Тесты поразили !
Даже визуально при малой загрузке стал заметен прирост в быстродействии !
Посмотрел процессы и остался доволен — на будущее если такой связки станет недостаточно — оставил возможность полного отказа от апача и перехода на связку nginx + php-fpm + memcache + eaccelerator (так сказать оставил на десерт).
Так как у меня на некоторых доменах были настроены авто сабдомены, пришлось погуглить на тему как это реализуется в nginx:
Автосабдомены в nginx
1 2 3 4 5 6 7 8 9 10 11 12 |
server { listen 80; server_name example.com *.example.com; root /var/www/example.com/$subdomain; set $subdomain «»; if ($host ~* ^([a—z0—9—\.]+)\.example.com$) { set $subdomain $1; } if ($host ~* ^www.example.com$) { set $subdomain «»; } } |
В итоге — полчаса работы — проблема решена (на текущий момент).
Так же в настройке nginx-а и понятии принципа работы помог следующий материал:
- Отличная статья по оптимизации сайта — эксклюзив
- Хорошая статья по nginx для новичков типа меня 🙂
- Установка nginx на freebsd
- Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD
Осталось только проброс IP шников доделать и усё — этим я щас и займусь.
Кстати — очень интересует момент — как посмотреть в такой связке nginx+apache какие странички отдаются в текущий момент времени? То есть (не дай бог конечно) но снова сервак встанет в ступор — хотя бы посмотреть из за кого именно. Буду рад если подскажете.
Если, что нагуглю в решении этого вопроса — попробую реализовать и конечно же отпишусь.
Один комментарий на «“Быстрая и эффективная оптимизация сервера”»
[…] В рамках цикла снижение нагрузки на сервер несколько хостов, создающих максимальную нагрузку, перекинул полностью на nginx (ранее у меня nginx только статику обрабатывал) […]