Наша компания обслуживает множество крупных интернет порталов различной тематики. Специфика подобных проектов подразумевает возникновение различных трудностей при росте аудитории, а значит и росте нагрузки на серверы. Один из наших клиентов активно продвигает свой видео-портал, и, как результат, нагрузка неминуемо стала расти, причем большими темпами. В какой-то момент обойтись двумя серверами стало уже невозможно и было принято решение добавить еще два. Затем еще два… в итоге серверов стало 12. Однако, нагрузка продолжает расти и одним только горизонтальным масштабированием ограничиваться нельзя. Настало время задуматься о более глубокой оптимизации.
Читать полностью »
Рубрика «nginx» - 36
Наш опыт оптимизации nginx для раздачи видео-контента
2013-12-30 в 8:12, admin, рубрики: linux, nginx, Блог компании centos-admin.ru, оптимизация, метки: linux, nginx, оптимизацияRuby on Rails и Nginx: эффективно отдаем большие файлы
2013-12-17 в 14:57, admin, рубрики: nginx, ruby on rails, метки: nginx, ruby on railsВ этом посте я расскажу, как правильно настроить Nginx для максимально эффективной отдачи больших файлов из вашего rails приложения. К своему удивлению, на русском языке я такой информации не нашел. Есть статьи про использование X-Accel-Redirect совместно с php, а вот чтобы про рельсы да на родном языке что-то не густо… Вобщем, постараюсь восполнить этот пробел.
Задача
Итак, исходные данные следующие:
- мы используем Ruby on Rails, запросы пользователей проходят через Nginx;
- нам нужно отдавать большие файлы;
- файлы должны быть недоступны для прямого скачивания, решение об отдаче файла принимает rails приложение.
Как правильно «послать» клиента
2013-12-11 в 6:57, admin, рубрики: nginx, Plesk, ssl сертификаты, Блог компании Parallels, домены, хостинг, метки: nginx, Plesk, ssl сертификаты, хостинг 
Давным-давно в нашей хостинг-панели Parallels Plesk Panel мы сделали такую интересную фишечку: если вводился адрес панели с указанием порта (8443), но без указания шифрования (https), то Plesk перенаправлял пользователя на адрес https://<server_hostname>:8443. Это было удобно. Кто-то к этому поведению привык. А кто-то — даже учел в своих процессах. В версии 11.5 мы заменили веб-сервер, обслуживающий сам Plesk, c lighttpd на nginx. И нечаянно сломали ту самую маленькую фишечку. Просто не смогли придумать, зачем бы она была нужна, и с новым веб-сервером ее не реализовали. Пользователям, обращавшимся по адресу http://<domain>:8443, стала показываться ошибка 400 — «Bad request».
Наши пользователи тут же напомнили нам, написав отзыв на forum.parallels.com (а мы читаем наш форум, да), — что ломать хорошие фичи и не давать ничего взамен — это плохо. Простите нас :) Вы скоро сможете увидеть в превью Parallels Plesk Panel 12.x, что мы ее вернули.
Читать полностью »
Настройка интернет шлюза для небольшого офиса CentOS, Iptables, NAT, Squid Transparent, Sarg
2013-12-10 в 11:50, admin, рубрики: CentOS, httpd, iptables, linux, nat, nginx, PCRE, системное администрирование, метки: CentOS, httpd, iptables, linux, nat, nginx, PCRE Прошли времена, когда в нашем офисе было 2 компьютера, и DSL модем на 4 порта с интернетом в 2 мегабита
спасал ситуацию. Сейчас в офисе 5 рабочих машин и 1 сервер для задач разработчиков.
При соединении всех в свич со стандартным Tp Link шлюзом, если кто начинал качать, интернет зависал у всех. Было принято решение создать свой шлюз интернета, с шейпером трафика, DNS, DHCP и статистикой ( squid + sarg) и прокси.
В качестве сервера был выбран DualCore pentium, 4 GB RAM с установленной на борту CentOS 6.4 minimal.
Итак, приступим к конфигурации нашего будущего интернет шлюза.
Задача стоит, настроить:
Раздачу интернета через NAT (iptables, htb), DHCP,DNS, HTTPD, NGINX, SARG
Читать полностью »
Оптимальная защита от DDoS с помощью netstat и iptables
2013-12-02 в 9:28, admin, рубрики: ddos, ddos-атака, iptables, linux, nginx, информационная безопасность, метки: ddos, ddos-атака, iptables, nginxДоброго времени суток!
Совсем недавно столкнулся с такой проблемой, как DDoS. Сразу скажу, я вообще ни разу не линуксойд, но зато чуточку программист, так что все что ниже, основано чисто на логике, а не на фактах, плюс переписанное с некоторыми добавками от уже известного.
Перекопав полчища статей и опробовав множество вариантов, ничто так и не помогло. Взяв за основу статьи Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables и (D)DoS Deflate решил написать свой скрипт. Ну вернее не решил, а методом тыка и исправлений он получился сам.
Должен заметить, что статья от Алексея Кузьмина не идеальна, т.к. в логах nginx`a не достаточно копаться, да и обработка логов может потребовать много ресурсов. А именно в моем случае создавались логи более 50 Гиг, плюс запросы шли не «GET / HTTP/1.1», а «GET / HTTP/1.0», плюс, как оказалось, мой сервер сам от себя получал редиректы (127.0.0.1), которые не отображались в логах, которые отображались в запросе
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Яндекс.Танк и автоматизация нагрузочного тестирования
2013-11-29 в 16:08, admin, рубрики: http, load testing, nginx, proxy, автоматизация, Блог компании Positive Technologies, нагрузка, тестирование, яндекс, яндекс.танк, метки: http, load testing, nginx, proxy, автоматизация, нагрузка, яндекс.танк
В ходе тестирования некоторых продуктов компании Positive Technologies возникла необходимость проведения быстрых стресс-тестов одного веб-сервиса. Эти тесты должны были быть простыми и быстрыми в разработке, нетребовательными к аппаратным ресурсам и одновременно с этим давать значительную нагрузку однотипными HTTP-запросами, а также предоставлять статистические данные для анализа системы под нагрузкой.
Для их реализации мы исследовали и опробовали некоторое количество инструментов, среди которых были Apache JMeter и написанный нами на Python скрипт LogSniper, который выполнял реплей заранее подготовленных серверных логов с HTTP-запросами на цель.Читать полностью »
Дайджест интересных новостей и материалов из мира PHP № 30 (10—24 ноября 2013)
2013-11-25 в 2:01, admin, рубрики: codeception, laravel 4, nginx, php, php.net, ReactPHP, rfc, symfony 2, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: codeception, laravel 4, nginx, PHP, php.net, ReactPHP, rfc, symfony 2, Веб-разработка, дайджест, новости, подборка, ссылки .jpg)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »
Уязвимость в nginx — nginx security advisory (CVE-2013-4547)
2013-11-19 в 15:54, admin, рубрики: nginx, информационная безопасность, пробел, уязвимость, метки: nginx, пробел, уязвимость В nginx обнаружена (и уже исправлена) уязвимость.
Подробности здесь: mailman.nginx.org/pipermail/nginx-ru/2013-November/052575.html
Проблеме подвержены версии nginx 0.8.41 — 1.5.6.
Проблема исправлена в nginx 1.5.7, 1.4.4.
Для кастомных конфигураций доступен патч — nginx.org/download/patch.2013.space.txt
Особенно интересна вот эта часть:
а также возможность вызывать специальную обработку файла с пробелом на конце в конфигурации вида
location ~ .php$ {
fastcgi_pass…
}запросив файл как "/file .php".
Кешируем статику
2013-11-15 в 12:59, admin, рубрики: fuse, nginx, кеширование, метки: fuse, nginx, кеширование Существует мнение, что nginx — отличный инструмент для отдачи статики.
Есть статьи, где описываются настройки sendfile или aio для «улучшения» отдачи.
На Хабре есть чего почитать о настройке proxy_store с proxy_cache для минимизации проблем со стороны мозгов сайта.
Еще в QA иногда возникают вопросы про кеширование картинок, например.
Зачем заниматься этой ерундой! — говорят опытные пользователи — OS лучше вас знает как кешировать файлы! С кешем и префетчем в современных OS, точнее FS, проблем нет! Зачем плодить свои кеши и списки популярных материалов и все такое?...
Есть только одно вредное «но» — в среде исполнения nginx (в общем случае Linux) понятие "файл" и вообще «файловая система» — просто понятие.
И однажды, когда я, подмонтировав сервер по sshfs, обновил один скриптик, случилось волшебное:
1. На каждой страничке стало на 4 картинки больше.
2. Сервера сдохли.
Что поделать — картинки хранились на glusterFS. Наступил полный FUSE.
Читать полностью »
Простые шаги для безопасности ваших юзеров: OAuth, SSL, P2P-чат с RSA-1024, гейт в i2p
2013-11-06 в 21:22, admin, рубрики: i2p, nginx, SSL, WebRTC, безопасность, информационная безопасность, криптография, метки: i2p, SSL, WebRTC, безопасность Утопающие не собираются спасать себя самостоятельно, поэтому предлагаем вам сделать четыре простых шага к увеличению безопасности посетителей вашего сайта.

Начитавшись откровений Сноудена, решили немного поработать. Расскажу про наш опыт реализации, последствия и реакцию пользователей.
