Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Специальная маска “msie6” (0.7.12) соответствует регулярному выражению “MSIE [4-6]\.”, но работает быстрее. Начиная с версии 0.8.11, из этой маски исключается “MSIE 6.0;… SV1”.
оно ограничено числом сокетов, доступных в системе (это порядка 64 * 10^3).С чего вдруг?
Теперь разберёмся с логированием. Во-первых, оставим логирование только критических ошибок.Очень вредный совет. Путем эконоимии даже не на спичках, а… не знаю с чем сравнить, вы упустите кучу важных ошибок.
# Only log critical errors.
error_log /var/log/nginx/error.log crit
use epoll;
, если nginx и так выбирает механизм, лучше всего работающий на данной системе?Зачем прописывать use epoll;, если nginx и так выбирает механизм, лучше всего работающий на данной системе?
tcp_nodelay так вообще включен по умолчанию.
Почему вообще sendfile разработчики не включили по умолчанию?
Зачем ограничивать keepalive_requests, пусть запрашивает себе на здоровье?
keepalive_requests
по прежнему служит для избежания утечек памяти, переполнения всяких счетчиков и прочего. Во время обработки запроса могут быть выделения памяти, которые персистентны для всего соединения, особенно во всяких сторонних модулях (где вообще может быть всё, что угодно).keepalive_requests
. Потом вы уточнили, что нехватка портов может случиться для исходящих соединений при проксировании. А теперь потрудитесь объяснить, как проксирование в nginx связано с обсуждаемой директивой, и как вообще эта директива в этом случае может помочь? Ответ я знаю — никак не связано, помочь не может.Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.
Это совет из серии «в php одинарные кавычки быстрее двойных».
Please make sure that for all special query operators (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.
tail -1 /var/log/nginx/personal.access_log | wc 1 27 386
Советую не копировать значения директив кеширования, а поиграть с ними, подобрав оптимальные для вашего окружения.
Generally, a properly tuned Nginx server on Linux can handle 500,000 — 600,000 requests per second. My Nginx servers consistently handle 904k req/sec, and have sustained high loads like these for the ~12 hours that I tested them.
It's important to know that everything listed here was used in a testing environment, and that you might actually want very different settings for your production servers.
# This number should be, at maximum, the number of CPU cores on your system.
# (since nginx doesn't benefit from more than one worker per CPU.)
Начнём с директивы worker_processes. Если Nginx выполняет работу нагружающую процессор (например SSL или gzipping), то оптимально установить эту директиву в значение, равное количеству ядер процессора. Выигрыш при большем значении вы получите только в случае обработки очень большого количества статики.
SSL или gzipping— мне можно ее в 1 установить? И все равно получу 900к реквестов в секунду?
since nginx doesn't benefit from more than one worker per CPU.То есть самое важное осталось без перевода.
worker_processes 24;
500,000 — 600,000
про sendfile
не знал.. думал она поумолчанию включена.. т.к. замерял производительность апача и энжинкса на отдаче статики была разница в 3.5 раза
Ускоряем Nginx за 5 минут