Els mòduls de NGINX permeten ampliar les funcionalitats del servidor web, afegint noves característiques i millorant el rendiment. En aquest tema, explorarem què són els mòduls de NGINX, com es poden utilitzar i configurarem alguns dels mòduls més comuns.

Què són els mòduls de NGINX?

Els mòduls de NGINX són extensions que afegeixen funcionalitats addicionals al servidor web. Aquests mòduls poden ser compilats dins del binari de NGINX o carregats dinàmicament. Hi ha dos tipus principals de mòduls:

  1. Mòduls estàtics: Aquests mòduls es compilen directament dins del binari de NGINX. Per utilitzar-los, cal recompilar NGINX amb els mòduls desitjats.
  2. Mòduls dinàmics: Aquests mòduls es poden carregar i descarregar dinàmicament sense necessitat de recompilar NGINX. Són més flexibles i fàcils de gestionar.

Instal·lació de mòduls dinàmics

Per instal·lar un mòdul dinàmic, primer cal assegurar-se que NGINX està compilat amb suport per a mòduls dinàmics. La majoria de les distribucions modernes de NGINX ja inclouen aquest suport.

Exemple: Instal·lació del mòdul ngx_http_geoip_module

  1. Instal·lar les dependències:

    sudo apt-get install libgeoip-dev
    
  2. Descarregar i compilar el mòdul:

    wget http://nginx.org/download/nginx-1.21.3.tar.gz
    tar -zxvf nginx-1.21.3.tar.gz
    cd nginx-1.21.3
    ./configure --with-http_geoip_module=dynamic
    make modules
    
  3. Copiar el mòdul compilat a la ubicació de mòduls de NGINX:

    sudo cp objs/ngx_http_geoip_module.so /etc/nginx/modules/
    
  4. Carregar el mòdul en la configuració de NGINX: Edita el fitxer de configuració principal de NGINX (/etc/nginx/nginx.conf) i afegeix la línia següent al bloc principal:

    load_module modules/ngx_http_geoip_module.so;
    
  5. Reiniciar NGINX:

    sudo systemctl restart nginx
    

Configuració de mòduls comuns

Mòdul ngx_http_geoip_module

Aquest mòdul permet utilitzar la base de dades GeoIP per determinar la ubicació geogràfica dels usuaris basant-se en la seva adreça IP.

Exemple de configuració:

http {
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    geoip_city /usr/share/GeoIP/GeoIPCity.dat;

    server {
        listen 80;
        server_name example.com;

        location / {
            if ($geoip_country_code = "US") {
                return 403 "Access denied";
            }
            proxy_pass http://backend;
        }
    }
}

Mòdul ngx_http_ssl_module

Aquest mòdul proporciona suport per a SSL/TLS, permetent configurar HTTPS per al vostre lloc web.

Exemple de configuració:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    location / {
        proxy_pass http://backend;
    }
}

Exercicis pràctics

Exercici 1: Instal·lar i configurar el mòdul ngx_http_stub_status_module

  1. Instal·la el mòdul ngx_http_stub_status_module.
  2. Configura NGINX per mostrar l'estat del servidor a /nginx_status.
  3. Accedeix a la URL /nginx_status i verifica la sortida.

Solució:

http {
    server {
        listen 80;
        server_name example.com;

        location /nginx_status {
            stub_status;
            allow 127.0.0.1;
            deny all;
        }
    }
}

Exercici 2: Configurar el mòdul ngx_http_gzip_module

  1. Habilita la compressió gzip per a les respostes HTTP.
  2. Configura NGINX per comprimir només els fitxers de tipus text/html i application/json.

Solució:

http {
    gzip on;
    gzip_types text/html application/json;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
        }
    }
}

Conclusió

Els mòduls de NGINX són una eina poderosa per ampliar les capacitats del servidor web. Hem vist com instal·lar i configurar mòduls dinàmics, així com alguns dels mòduls més comuns. Amb aquesta base, podeu explorar altres mòduls i adaptar NGINX a les vostres necessitats específiques.

© Copyright 2024. Tots els drets reservats