Как снизить нагрузку на CPU хостинга?

Привет всем! И так, Ваш сайт начали атаковать боты, неизвестные айпи-адреса, у вас стала зашкаливать нагрузка на сервер? Не спешите покупать более дорогой тарифный план с наибольшим порогом нагрузки. Сейчас я расскажу, что можно в данном случае сделать собственными руками.
 
1) В .htaccess добавляем защиту от хотлинка:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?sait.ru [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Индивидуально можно сгенерировать себе директиву через сервис http://www.htaccesst...link-protection/ 
 
Запрет хотлинка для NGINX будет выглядеть так:

server {
server_name vash-site.ru www.vash-site.ru;
listen 109.120.169.57;
set $root_path /var/www/vash-site.ru;
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {

root $root_path;

valid_referers none blocked mirvkartinkah.ru *.mirvkartinkah.ru;
if ($invalid_referer) {
return 403;
}
error_page 404 = @fallback;
}

Для тех кто в танке — этот код для NGINX мы прописываем не в .htaccess, а в nginx.conf
 
2) Добавить запрет на посещение сайта мусорных ботов добавляем все в тот же .htaccess:

SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get=»» post=»» head=»»>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>

Важно !!! Если Вы можете дополнить этот список, то обязательно отпишитесь в этой теме !!!
 
3) Добавить директиву в robots.txt Crawl-delay: 25 (я поставил интервал для ботов в 25 секунд между запросами на загрузку ими контента, вы можете поставить число намного меньше или больше)
 
4) Если кто-то принципиально долбится на одну и ту же страницу, например на страницу авторизации для администратора /admin.php, то скорей всего вас пытаются сбрутить (перебрать пароль). В данном случае настоятельно рекомендую изменить URL для авторизации, добавить «настойчивые» IP-адреса в бан указав их списком в .htaccess

Deny from 63.141.236.98
Deny from 212.83.152.36
Deny from 46.161.9.4
Deny from 78.188.51.168
Deny from 52.41.211.72
Deny from 58.108.214.10
Deny from 146.0.77.109
Deny from 173.208.148.21
Deny from 116.72.16.83
Deny from 5.227.7.28
Deny from 146.0.77.109

А так же лучше еще прописать запрет для страницы авторизации всем кроме себя, или вообще всем 

<Files admin.php>
Allow from 88.879.08.102
Deny from all
</Files>

5) Убрать с сайта лишние счетчики, например убрать LiveInternet, а оставить Яндекс-Метрику.
 
На этом пока всё Источник: http://www.masterwebs.ru/topic/28888-razbor-kak-snizit-nagruzku-na-cpu-hostinga/