NGINX е популярен, безплатен уеб сървър с отворен код. Конфигурациите на NGINX по подразбиране са достатъчно добри, за да накарат уеб сървъра да работи.
Въпреки това, ако искате да използвате NGINX в най-голяма степен, трябва да си поиграете с неговите конфигурационни файлове и да зададете параметрите, които ще оптимизират производителността на сървъра. Ще намерите конфигурационните файлове в /etc/nginx директория на Linux машина.
Какво е NGINX?
NGINX е модерен уеб сървър, който можете да използвате като медиен стриймър, пощенски сървър, обратен прокси, балансьор на натоварването, кеш сървър и др.
Използван от много големи профили като VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter и др., NGINX е широко известен със своята първокласна производителност. Друго предимство на използването на NGINX е, че е лесно да се конфигурира и научи.
Предпоставки за настройка на производителността на NGINX на Linux
Трябва да отговаряте на следните изисквания, преди да започнете с конфигурациите на NGINX:
- NGINX сървър, внедрен и конфигуриран на Linux
- Основно разбиране на NGINX и неговите конфигурационни файлове
Ако отговаряте на тези изисквания, вие сте готови да настроите NGINX за оптимална производителност. Да видим как да го направим.
1. Конфигуриране на работни процеси в NGINX
Архитектурата на NGINX се състои от един главен процес и няколко работни процеса. Задачата на главния процес е да оцени конфигурацията и да управлява работниците. От друга страна, ролята на работния процес е да се справя с входящи заявки и да създава връзка между клиента и сървъра.
Стойността на процеса е зададена на Автоматичен по подразбиране. Това задава броя на работните процеси, равен на броя на наличните процесорни ядра. За да разберете колко CPU ядра присъстват във вашата система, изпълнете следната команда:
grep процесор /proc/cpuinfo | wc -л
Ако искате да увеличите броя на работните процеси, трябва да конфигурирате това в конфигурационния файл на NGINX.
Отворете файла с nano:
нано и т.н./nginx/nginx.conf
За да конфигурирате повече работни процеси, променете стойността по подразбиране на максималния брой налични процесорни ядра във вашата система.
2. Конфигуриране на работни връзки
Друг параметър, който можете да промените, за да подобрите производителността на NGINX, са работните връзки. Това е максималният брой TCP връзки, които всеки работен процес може да обработва едновременно.
Повечето системи имат стойност по подразбиране от 512 връзки, но много съвременни системи поддържат и по-голям брой. Можете да проверите колко връзки поддържа вашата система с:
ulimit -н
Резултатът ще бъде максималният брой поддържани връзки. След това можете да промените работни_връзки променлива в конфигурационния файл на NGINX, за да подобрите производителността.
3. Разрешете GZIP компресия в NGINX
NGINX използва GZIP за компресиране и декомпресиране на файлове. Ако е активирано в конфигурационния файл на NGINX, можете да спестите честотна лента и да подобрите времето за зареждане на уебсайта, когато връзката е бавна.
За да позволите GZIP компресия, добавете следните редове в конфигурационния файл на NGINX:
сървър {
gzip включен;
gzip_vary на;
gzip_min_length 10240;
gzip_proxied изтекъл не-кеш паметне-магазинчастен автентичност;
gzip_types текст/обикновен текст/css текст/xml текст/javascript приложение/x-javascript приложение/xml;
gzip_деактивиране "MSIE [1-6]\.";
}
4. Ограничете стойността на изчакване в NGINX
Намалените стойности на изчакване също играят основна роля за подобряване на производителността на NGINX. The запази живи връзките намаляват натоварването на процесора и мрежата при отваряне и затваряне на връзки.
Можете да промените следните параметри в конфигурационния файл, за да ограничите изчакванията:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Регулирайте размера на буфера
Можете също така да коригирате буферите на NGINX, за да оптимизирате производителността на сървъра. Ако размерът на буфера е твърде нисък, тогава NGINX ще записва във временен файл, което кара огромни I/O операции да се изпълняват постоянно.
Трябва да зададете следните параметри на буфера, за да може NGINX да функционира най-добре:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. Деактивирайте регистрационните файлове за достъп или активирайте буферирането на регистрационните файлове за достъп
Регистрациите консумират голямо количество дисково пространство и CPU/IO цикли, които могат да повлияят на производителността на сървъра, ако регистрира всяка заявка.
Можете да деактивирате регистрационните файлове за достъп, което ще спести малко дисково пространство и процесорна обработка. За да деактивирате регистрационните файлове за достъп, добавете следния ред към конфигурационния файл на NGINX:
access_log off;
Дневниците са важни, тъй като помагат при отстраняване на проблем. Пълното деактивиране на регистрационни файлове не е добра практика. В този случай можете да активирате буферирането на регистрационните файлове за достъп. Това ще позволи на NGINX да буферира поредица от регистрационни файлове и да ги запише в регистрационния файл заедно наведнъж, вместо да прилага различни операции с журнал за всяка заявка.
Добавете следния ред в конфигурационния файл на NGINX, за да позволите буфериране на регистрационни файлове за достъп:
access_log/var/log/nginx/access.logосновенбуфер=16k
7. Коригирайте периода на кеширане на статично съдържание в NGINX
Съдържанието на уебсайта, което остава същото на страниците, е известно като статично съдържание. Кеширането на това съдържание позволява то да бъде поставено на места, които са лесно достъпни. Този механизъм намалява използването на честотната лента, позволява бърз достъп и впоследствие подобрява производителността на уебсайта.
Когато клиент поиска статично съдържание, сървърът ще обслужва кеширана версия на съдържанието. Добавете следните редове във файла на виртуалния хост, поставен в /etc/nginx/sites-available директория:
местоположение ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
изтича 90d;
}
Тази конфигурация ще кешира файловете за 90 дни от последното време за достъп на браузъра.
8. Активирайте Open File Cache в NGINX
Можете също така да използвате параметрите на отворения файлов кеш в конфигурационния файл на NGINX, за да подобрите неговата производителност. Тази директива позволява файловият дескриптор и често посещаваните файлове да бъдат кеширани на сървъра.
Добавете следните редове в http раздел в конфигурационния файл, за да активирате отворения файлов кеш:
http {
open_file_cache max=1024 неактивен=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors на;
}
Извлечете най-доброто от NGINX, като промените неговите конфигурационни файлове
Добра практика, която трябва да следвате, докато променяте конфигурациите, е да работите с една настройка наведнъж и да я тествате. Ако работи, преминете към следващата настройка. Ако не, винаги можете да промените конфигурацията обратно към стойността по подразбиране.
Чрез модифициране на параметрите, конфигурирани в конфигурационните файлове на NGINX, като напр nginx.conf и виртуални хост файлове, можете да хакнете NGINX, за да осигурите най-добра производителност.