En aquest tema, aprendrem com optimitzar el rendiment de NGINX per assegurar-nos que el nostre servidor web o proxy invers funcioni de manera eficient i pugui gestionar una gran quantitat de trànsit. Explorarem diverses tècniques i configuracions que poden ajudar a millorar el rendiment.
- Ajust de paràmetres de treballadors
Explicació
NGINX utilitza processos de treballadors (workers) per gestionar les connexions. Ajustar el nombre de treballadors i altres paràmetres relacionats pot tenir un impacte significatiu en el rendiment.
Configuració
Detalls
worker_processes auto;
: Configura NGINX per utilitzar automàticament el nombre òptim de processos de treballadors basat en el nombre de CPU disponibles.worker_connections 1024;
: Estableix el nombre màxim de connexions que cada treballador pot gestionar simultàniament.
Exercici
- Ajusta els paràmetres de treballadors en el teu fitxer de configuració de NGINX.
- Reinicia NGINX i comprova el rendiment utilitzant eines com
ab
(Apache Benchmark) osiege
.
- Utilització de la caché
Explicació
La caché pot reduir significativament la càrrega del servidor i millorar el temps de resposta emmagatzemant contingut freqüentment sol·licitat.
Configuració
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { location / { proxy_cache my_cache; proxy_pass http://backend; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; } }
Detalls
proxy_cache_path
: Defineix el camí de la caché, la mida màxima, i altres paràmetres.proxy_cache
: Activa la caché per a una ubicació específica.proxy_cache_valid
: Defineix la durada durant la qual les respostes es consideren vàlides.
Exercici
- Configura la caché en el teu servidor NGINX.
- Realitza proves de càrrega abans i després d'activar la caché per veure la diferència en el rendiment.
- Compressió de contingut
Explicació
La compressió de contingut pot reduir la mida de les respostes HTTP, millorant així els temps de càrrega.
Configuració
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 256;
Detalls
gzip on;
: Activa la compressió gzip.gzip_types
: Especifica els tipus de contingut que es comprimeixen.gzip_min_length
: Defineix la mida mínima de la resposta per a la compressió.
Exercici
- Activa la compressió gzip en el teu servidor NGINX.
- Utilitza eines com
curl
oPostman
per verificar que les respostes es comprimeixen correctament.
- Optimització de la configuració de temps d'espera
Explicació
Ajustar els temps d'espera (timeouts) pot ajudar a alliberar recursos més ràpidament i millorar la gestió de connexions.
Configuració
Detalls
keepalive_timeout
: Defineix el temps d'espera per a les connexions keep-alive.client_body_timeout
: Temps d'espera per a la recepció del cos de la sol·licitud del client.client_header_timeout
: Temps d'espera per a la recepció de les capçaleres de la sol·licitud del client.send_timeout
: Temps d'espera per a l'enviament de la resposta al client.
Exercici
- Ajusta els temps d'espera en el teu fitxer de configuració de NGINX.
- Realitza proves de càrrega per veure com afecten aquests ajustos al rendiment.
- Utilització de HTTP/2
Explicació
HTTP/2 pot millorar significativament el rendiment gràcies a la seva capacitat de multiplexació, compressió de capçaleres i altres millores.
Configuració
server { listen 443 ssl http2; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; # Altres configuracions... }
Detalls
listen 443 ssl http2;
: Activa HTTP/2 en el port 443 amb SSL.ssl_certificate
issl_certificate_key
: Especifica els fitxers de certificat SSL.
Exercici
- Activa HTTP/2 en el teu servidor NGINX.
- Utilitza eines com
curl
o navegadors moderns per verificar que HTTP/2 està actiu.
Conclusió
En aquesta secció, hem explorat diverses tècniques per optimitzar el rendiment de NGINX, incloent l'ajust de paràmetres de treballadors, l'ús de la caché, la compressió de contingut, l'optimització de temps d'espera i l'activació de HTTP/2. Aquests ajustos poden ajudar a millorar significativament la capacitat de resposta i l'eficiència del teu servidor NGINX.
En el següent tema, ens centrarem en la monitorització de NGINX per assegurar-nos que el nostre servidor funcioni de manera òptima i detectar problemes potencials abans que es converteixin en greus.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre