> ## Content Index
> Fetch the complete content index at: https://blog.firenetwork.it/llms.txt
> Use this file to discover other available public pages before exploring further.

# Introduzione ad NGINX
- URL: https://blog.firenetwork.it/introduzione-ad-nginx/
- Published: 2025-06-12T20:18:21.000Z
- Updated: 2025-06-19T20:32:55.000Z
- Author: Samuele Gabbrielli
- Tags: #Import 2026-03-12 20:23

Cosa è NGINX? Ve lo lascio presentare direttamente dal [sito ufficiale](https://nginx.org/?ref=blog.firenetwork.it), che dice:

> NGINX ("*engine x"*) è un HTTP web server, reverse proxy, content cache, load balancer, TCP/UDP proxy server e mail proxy server

NGINX è un software magnifico, ma non certo senza difetti. Uno tra tutti, **non ha un'interfaccia grafica**.

Questa mancanza in realtà ha un suo perché: NGINX deve tassativamente essere il più leggero possibile, perché deve avere un **overhead minimo** e garantire quindi di poter usare il massimo delle risorse del sistema per svolgere il suo lavoro.

Di contro, anche se la sua configurazione è fatta **interamente da file** molto basici, una volta che se ne capisce il funzionamento **risulta molto semplice**:

- il file */etc/nginx/nginx.conf* contiene le impostazioni base di NGINX, che si applicano a tutte le sue funzionalità.
- nel file *nginx.conf* sono presenti delle direttive "**include**" che puntano ad uno o più files esterni, presenti nel filesystem, come i file presenti nella cartella */etc/nginx/sites-enabled*
- i files in */sites-enabled* sono dei [**symlink**](https://en.wikipedia.org/wiki/Symbolic%5Flink?ref=blog.firenetwork.it) ai files veri e propri, presenti in */etc/nginx/sites-available*
- i files in */sites-available* contengono un set di regole relative ad un *site*

### Perchè i file in *sites-enabled* sono dei **symlink**?

Non si tratta di un requisito fondamentale per NGINX (infatti si possono tranquillamente usare dei file statici in questa cartella), ma di una comodità.

Non c'è infatti modo in NGINX di creare una regola ma lasciarla disattivata. Usando i symlink invece, si può creare una regola in */sites-available* e non creare il suo symlink in */sites-enabled* finchè non la si vuole attivare.

## Installazione di NGINX

(*testato su Ubuntu Server 24.04*)

Installare NGINX è un gioco da ragazzi, dato che è disponibile nelle repository di default di *apt*.

```
sudo apt install nginx -y
```

Potete quindi monitorare lo status di NGINX

```
sudo systemctl status nginx
```

Se dovesse servirvi farlo manualmente, potete far ricaricare ad NGINX le modifiche che avete apportato usando il comando *reload*, senza doverlo riavviare completamente.

```
sudo systemctl reload nginx
```

## Prima configurazione di NGINX

Di seguito vi consiglio alcuni passaggi di configurazione che vi permettono di prendere dimestichezza con la gestione "a mano" di NGINX.

### pagina di status

Se avete intenzione di monitorare NGINX tramite [Telegraf](https://blog.firenetwork.it/telegraf-installazione/), [Prometheus ](https://blog.firenetwork.it/installazione-di-prometheus/)e Grafana, prima di tutto dovrete creare una pagina web in cui NGINX scriva le sue metriche.

Per fare ciò, creiamo un nuovo site in */etc/nginx/sites-available/* chiamato *nginx\_status*

```
nano /etc/nginx/sites-available/nginx_status
```

Andiamo ad indicare il contenuto del site

```
server {
    listen 88;
    location /nginx_status {
        stub_status on;
        access_log off;
        allow all;
    }
}
```

E creiamo un symlink a questo file in sites-enabled

```
ln -s /etc/nginx/sites-available/nginx_status /etc/nginx/sites-enabled/nginx_status
```

Ricarichiamo le modifiche effettuate

```
sudo systemctl reload nginx
```

Adesso accedendo a *http://indirizzo.IP.di.NGINX:88/nginx\_status* saremo accolti dalla pagina di status.

![](https://blog.firenetwork.it/content/images/2025/06/immagine-9.png)

### Aumentare il numero di workers

In vari ambienti, di produzione e non, mi sono imbattuto spesso nell'errore *not enough worker\_connections*.

Questo errore ci dice che NGINX non ha più processi worker a cui assegnare le richieste che gli stanno arrivando.

Possiamo aumentare manualmente il limite massimo del numero di worker che NGINX può spawnare, modificando il file nginx.conf

```
nano /etc/nginx/nginx.conf
```

e modificando, all'interno della sezione *events* il parametro *worker\_connections*

```
events {
  ...
  worker_connections 20000;
  ...
}
```

Riavviamo NGINX per applicare le modifiche

```
sudo systemctl restart nginx
```

---

![](https://blog.firenetwork.it/content/images/2025/06/Written-By-Human-Not-By-AI-Badge-white@2x-4.png)