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.

  1. 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ó

worker_processes auto;
worker_connections 1024;

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

  1. Ajusta els paràmetres de treballadors en el teu fitxer de configuració de NGINX.
  2. Reinicia NGINX i comprova el rendiment utilitzant eines com ab (Apache Benchmark) o siege.

  1. 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

  1. Configura la caché en el teu servidor NGINX.
  2. Realitza proves de càrrega abans i després d'activar la caché per veure la diferència en el rendiment.

  1. 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

  1. Activa la compressió gzip en el teu servidor NGINX.
  2. Utilitza eines com curl o Postman per verificar que les respostes es comprimeixen correctament.

  1. 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ó

keepalive_timeout 65;
client_body_timeout 12;
client_header_timeout 12;
send_timeout 10;

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

  1. Ajusta els temps d'espera en el teu fitxer de configuració de NGINX.
  2. Realitza proves de càrrega per veure com afecten aquests ajustos al rendiment.

  1. 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 i ssl_certificate_key: Especifica els fitxers de certificat SSL.

Exercici

  1. Activa HTTP/2 en el teu servidor NGINX.
  2. 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.

© Copyright 2024. Tots els drets reservats