nginx - nginx: [emerg] bind () a [::]: 80 fallito (98: indirizzo già in uso)


249

Improvvisamente sto ricevendo l'errore nginx di seguito

 * Restarting nginx
 * Stopping nginx nginx
   ...done.
 * Starting nginx nginx
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
   ...done.
   ...done.

Se corro

lsof -i :80 or sudo fuser -k 80/tcp 

Non ho niente. Niente sulla porta 80

Quindi eseguo il seguito:

sudo netstat -pan | grep ":80"
tcp        0      0 127.0.0.1:8070          0.0.0.0:*               LISTEN      15056/uwsgi     
tcp        0      0 10.170.35.97:39567      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39564      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39584      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39566      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39571      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39580      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39562      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39582      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39586      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39575      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39579      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39560      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39587      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39591      10.158.58.13:8080       TIME_WAIT   -               
tcp        0      0 10.170.35.97:39589      10.158.58.13:8080       TIME_WAIT   - 

Sono perplesso. Come posso eseguire il debug di questo?

Sto usando Uwsgi con un proxy pass sulla porta 8070. Uwsgi è in esecuzione. Nginx non lo è. Sto usando Ubuntu 12.4

Di seguito sono riportate le parti rilevanti del mio file conf nginx

upstream uwsgi_frontend {
          server 127.0.0.1:8070;
        }
server {
listen 80;
        server_name 127.0.0.1;
        location = /favicon.ico {
                  log_not_found off;
                }



                location / {
                       include uwsgi_params;
                       uwsgi_buffering off;

                       uwsgi_pass 127.0.0.1:8070;
                 }
        }

Ecco come installo nginx su Ubuntu 12.04

nginx=stable;add-apt-repository ppa:nginx/$nginx;
apt-get update
apt get install nginx-full

19
Ho trovato il problema che non avevo mai avuto prima. Ho dovuto eliminare / etc / nginx / sites-available / default. Quindi ha funzionato. La mia conf era in / etc / nginx / default
Tampa il

Stavo eseguendo Nginx + Varnish e ho avuto questo errore. La soluzione è stata top stop entrambi, quindi avviare prima nginx e quindi vernice.
Ben

potresti provare a interrompere il servizio denominato.
amal

hai rimosso il tuo valore predefinito dai siti abilitati?
Wolfpack'08,

ho provato tutte le soluzioni qui. Ho controllato tutte le porte in uso (era utilizzato da NGINX stesso), quindi ho ucciso la porta e riavviata. Ha funzionato come un fascino.
Gavin

Risposte:


202

[::]:80 è un indirizzo ipv6.

Questo errore può essere causato se si dispone di una configurazione nginx in ascolto sulla porta 80 e anche sulla porta [::]:80.

Ho avuto quanto segue nel mio file predefinito disponibile per siti:

listen 80;
listen [::]:80 default_server;

È possibile risolvere questo problema aggiungendo ipv6only=ona [::]:80questo:

listen 80;
listen [::]:80 ipv6only=on default_server;

Per ulteriori informazioni, vedere:

http://forum.linode.com/viewtopic.php?t=8580

http://wiki.nginx.org/HttpCoreModule#listen


11
Puoi anche risolverlo semplicemente rimuovendo l'ascolto 80; perché ascolta [::]: 80 ascoltano sia IPv4 che IPv6. Attenzione però perché alcuni sistemi (come FreeBSD) separano i socket IPv4 e IPv6 e quindi non funzionerà, ma per Linux dovrebbe andare bene. wiki.nginx.org/HttpCoreModule#listen
gitaarik

4
Grazie per scavare in questo e fornire una spiegazione al motivo per cui l'eliminazione /etc/nginx/sites-available/defaultaiuta con l'errore di cui sopra.
Oliver,

1
Anche quando commento la riga ipv6, provo sempre lo stesso errore sudo service nginx restart. Quando lo faccio netstat -tulpn |grep 80, ottengo solo una volta il processo nginx (0.0.0.0:80). Qualche idea sul perché non si riavvierà?
Romano,

Dico ciò che ha detto @rednaw, ma invece di rimuovere l'ascolto, puoi semplicemente commentarlo
d4nyll,

L'impostazione ha ipv6only=onrisolto il problema, ma nginx dovrebbe davvero rilevare che sta cercando di collegarsi alla stessa interfaccia: porta due volte.
Dan Dascalescu,

246

ho risolto questo problema eseguendo sudo apachectl stop- risulta che Apache era in esecuzione in background e ha impedito l'avvio di nginx sulla porta desiderata.

Con Ubuntu sudo /etc/init.d/apache2 stop


8
Utilizzare sudo /etc/init.d/apache2 stopper arrestare Apache su Ubuntu 14.04
Footniko,

3
Il motivo è perché non è possibile avere due server Web in ascolto della stessa porta. Scegli uno e, se necessario, proxy. Ad esempio, utilizzare nginx, ma per alcune richieste (come per i phpfile), eseguire il proxy alla porta Apache.
d4nyll,

Lo stesso qui su una nuova installazione di Debian 9.
jirarium,

Grazie. Ma hai idea del perché è iniziato all'improvviso? Non ho toccato il server per una settimana, ma era iniziato ieri sera.
Ajay Singh

1
Grazie per la tua soluzione Funziona per me, utilizzo Google Cloud Platform
congle

93

Il mio caso è diverso, ho dovuto uccidere eseguendo Nginx per riavviarlo.

Invece di

sudo systemctl restart nginx

Ho dovuto usare:

sudo pkill -f nginx & wait $!
sudo systemctl start nginx

1
Stavo prendendo 404 Not Found, e ho usato il tuo suggerimento, ora ho risolto il mio problema. Grazie.
Baia,

3
Questo ha funzionato per me. Nient'altro ha fatto. Non sono sicuro di quale processo si avvii al riavvio del sistema, ma lo aggiungerò semplicemente nella mia routine di riavvio nginx. Grazie!
Khom Nazid,

38

Ho trovato il problema che non avevo mai avuto prima.

Ho dovuto solo cancellare /etc/nginx/sites-available/default. Quindi ha funzionato.

La mia conf era dentro /etc/nginx/default.


2
+1 Questa soluzione ha funzionato per me, ma poi ho pensato che ci fosse qualcosa di predefinito che sta effettivamente causando il problema, quindi ho scavato un po 'più a fondo e ho fornito una risposta con maggiori informazioni.
Nathan,

11
Direi che eliminare il modello di configurazione del sito predefinito non è la soluzione migliore: commentare la riga che contiene listen 80;in quello stesso modello risolve già il problema e correttamente. Il tuo trucco funziona ma non è quello che farei i futuri lettori della tua domanda. Ecco perché ti suggerisco di selezionare la risposta di @ Nathan come risposta corretta.
Oliver,

4
Ho avuto lo stesso problema dopo l'esecuzione apt-get dist-upgrade, che ha aggiornato il pacchetto nginx, che ha creato un collegamento /etc/nginx/sites-enableda /etc/nginx/sites-available/default. nginx stava cercando di caricare questa configurazione predefinita, che ascolta la porta 80 su IPv6, quindi stava anche caricando la mia lettura delle mie vere configurazioni. La rimozione di quel link simbolico ha risolto il problema.
Dan Dascalescu,

15
NON È NECESSARIO ELIMINARE /etc/nginx/sites-available/default , è sufficiente rimuovere il collegamento simbolico ad esso -sudo rm /etc/nginx/sites-enabled/default
d4nyll

Ho riscontrato questo problema durante il tentativo di eseguire nginxsulla porta 8080 e varnishsulla porta 80 e in modo simile a questa risposta, ho riscontrato che il problema con una nginxconfigurazione predefinita è ancora in ascolto sulla porta 80 anche se le mie configurazioni erano sites-availabletutte in ascolto sulla porta 8080. Questo si trovava in/etc/nginx/conf.d/default
zigojacko

24

Stavo anche ottenendo lo stesso errore.

nginx: [emerg] bind () a [::]: 80 non riuscito (98: indirizzo già in uso)

e quando ho digitato localhost nel browser, allora stavo ottenendo

Funziona!

Questa è la pagina Web predefinita per questo server.

Il software del server Web è in esecuzione ma non è stato ancora aggiunto alcun contenuto. invece della pagina di benvenuto di nginx, apache2 è in esecuzione sulla stessa porta,

  1. trova il file apache2 ports.conf

    sudo /etc/apache2/ports.conf
    
  2. cambio la porta poi 80, lo faccio come70

  3. salva il file

  4. riavvia il tuo sistema

funzionerà anche per te, se digiti localhost nel browser, otterrai la pagina di benvenuto di nginx


1
Potresti semplicemente non voler eseguire contemporaneamente Apache2 e nginx. Ho trovato che l'installazione di Apache avvia il servizio. Quindi, ho emesso "sudo /etc/init.d/apache2 stop", e quindi sono stato in grado di avviare normalmente nginx. Questo ti salva anche dal riavvio del sistema.
Chris Westin,

1
Hai ragione a dire che l'eliminazione del link sym / etc / nginx / sites-enabled / default impedisce che si ascolti su due porte. Trovo in realtà un po 'fastidioso che ogni tutorial su nginx inizi suggerendo a tutti di eliminare il link "predefinito" ma questo è un argomento diverso suppongo.
eschipul,

@IgorGanapolsky passa Apache a un'altra porta?
Menasheh,

10

prova a fare questo comando

sudo fuser -k 443/tcp
service nginx restart

8

Il mio problema era che avevo direttive di ascolto sovrapposte. Sono riuscito a capire le direttive sovrapposte correndo

grep -r listen /etc/nginx/*

Due file erano in ascolto sulla stessa porta:

/etc/nginx/conf.d/default.conf:           listen 80;  
/etc/nginx/sites-enabled/default.conf:    listen 80;

3
È un modo molto accurato per controllare le cose: grep -r listen /etc/nginx/*grazie per averlo condiviso!
Newskooler,

6

Ho avuto lo stesso problema in letsencrypt (certbot) e nginx,

rif: https://github.com/certbot/certbot/issues/5486

questo errore non ha ancora una soluzione

così, un cron cambiato per rinnovare (mettendo una ricarica dopo rinnovo) (usando suggest da certbot)

-- in /etc/cron.d/certbot
from
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew 
to
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --pre-hook "service nginx stop" --post-hook "service nginx start"

registri (breve):

-- in /var/log/syslog
Jun 10 00:14:25 localhost systemd[1]: Starting Certbot...
Jun 10 00:14:38 localhost certbot[22222]: nginx: [error] open() "/run/nginx.pid$
Jun 10 00:14:41 localhost certbot[22222]: Hook command "nginx" returned error c$
Jun 10 00:14:41 localhost certbot[22222]: Error output from nginx:
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:443 $
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] bind() to 0.0.0.0:80 f$
Jun 10 00:14:41 localhost certbot[22222]: nginx: [emerg] still could not bind()
Jun 10 00:14:41 localhost systemd[1]: Started Certbot.


-- in /var/log/nginx/error.log
2018/06/10 00:14:27 [notice] 22233#22233: signal process started
2018/06/10 00:14:31 [notice] 22237#22237: signal process started
2018/06/10 00:14:33 [notice] 22240#22240: signal process started
2018/06/10 00:14:34 [notice] 22245#22245: signal process started
2018/06/10 00:14:38 [notice] 22255#22255: signal process started
2018/06/10 00:14:38 [error] 22255#22255: open() "/run/nginx.pid" failed (2: No $
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:443 failed (98: Addr$
2018/06/10 00:14:39 [emerg] 22261#22261: bind() to 0.0.0.0:80 failed (98: Addre$
2018/06/10 00:14:39 [emerg] 22261#22261: still could not bind()

1
super casuale, ma questo è ciò che credo sia stato il mio problema. grazie per aver pubblicato questo. il mio errore sembrava manifestarsi a causa di una voce di dominio obsoleta che stava tentando di rinnovare ma non potevo perché non controllavo più il dominio.
w--

Immagino che questo sia probabilmente anche il mio problema. ma devo aspettare per dare un'occhiata
Oscar Zhou1989,

2

Prima modifica apache ascolta la porta da 80 a 8080 apache in /etc/apache2/ports.conf include

Listen 1.2.3.4:80 to 1.2.3.4:8080
sudo service apache2 restart 

o

sudo service httpd restart    // in case of centos

quindi aggiungi nginx come server proxy inverso che ascolterà la porta apache

server {
 listen   1.2.3.4:80;
 server_name  some.com;

 access_log  /var/log/nginx/something-access.log;

 location / {
  proxy_pass http://localhost:8080;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }


location ~* ^.+\.(jpg|js|jpeg|png)$ {
   root /usr/share/nginx/html/;
}

location /404.html {
  root /usr/share/nginx/html/40x.html;
}

error_page 404 /404.html;
    location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
    location = /50x.html {
}

# put code for static content like js/css/images/fonts
}

Dopo le modifiche, riavviare il server nginx

sudo service nginx restart

Ora tutto il traffico verrà gestito dal server nginx e invierà tutta la richiesta dinamica ad apache e il contenuto statico verrà servito dal server nginx.

Per una configurazione avanzata come la cache:

https://www.linode.com/docs/web-servers/nginx/slightly-more-advanced-configurations-for-nginx/#basic-nginx-caching


1

Ho riscontrato un problema simile. il registro è come di seguito

2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to 0.0.0.0:443 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: bind() to [::]:80 failed (98: Address already in use)
2018/10/31 12:54:20 [emerg] 128005#128005: still could not bind()
2018/10/31 12:54:23 [alert] 127997#127997: unlink() "/run/nginx.pid" failed (2: No such file or directory)
2018/10/31 22:40:48 [info] 36948#36948: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:68
2018/10/31 22:50:40 [emerg] 37638#37638: duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/default:18
2018/10/31 22:51:33 [info] 37787#37787: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:68

L'ultimo [emerg]mostra ciò duplicate listen options for [::]:80che significa che ci sono più file di blocco nginx contenenti[::]:80 .

La mia soluzione è quella di rimuovere uno dei [::]:80 impostazioni

PS probabilmente hai un file di blocco predefinito. Il mio consiglio è di mantenere questo file come server predefinito per la porta 80. e rimuoverlo [::]:80da altri file di blocco


1

Uso il supervisore per eseguire Nginx e Gunicorn fianco a fianco su un container Docker.

Questa era la configurazione utilizzata per il supervisore:

[supervisord]
nodaemon=true

[program:gunicorn]
command = /project/start.sh
user = www-data


[program:nginx]
command=/usr/sbin/nginx

Il problema era come ho lanciato Ngnix: di default gira in primo piano. Questo rende supervisione il tentativo di eseguire un'altra istanza di Nginx.

Aggiungendo -g 'daemon off;'alla riga di comando, Nginx è rimasto in primo piano, il supervisore ha smesso di provare a eseguire un'altra istanza.


1

Nel mio caso, uno dei servizi Apache, Apache2 o Nginx era già in esecuzione e per questo non sono stato in grado di avviare l'altro servizio.


0

Avevo diversi file * .save (dump di emergenza da nano) da diversi file di configurazione NGINX nella mia directory disponibile per i siti. Dopo aver eliminato questi file .save, NGINX è stato riavviato correttamente. Ho pensato che fossero innocui poiché non c'erano collegamenti simbolici corrispondenti, ma immagino di aver sbagliato.


0

Per seguire le risposte di @ lfender6445 e @SAURABH -

Il mio problema era anche il fatto che dopo l'aggiornamento a Vagrant 2.2.2 Apache2 era in esecuzione come server Web all'avvio del guest. In passato avevo solo nginx come web server.

vagrant ssh nella casella ed esegui il comando seguente per disabilitare l'avvio di Apache2 ogni volta che si avvia la casella guest:

sudo update-rc.d -f apache2 remove

Esci da ssh, fermata vagabonda, vagabonda su. Problema risolto.


0

Se il problema persiste dopo aver provato una delle soluzioni precedenti, riavviare il server una volta. Ha funzionato per me :)


Sì, lo sarebbe. Ma anche uccidere il processo di nginx e riavviare solo nginx funziona. Questa è la risposta di @datdinhquoc.
Khom Nazid,

0

Nel mio caso il colpevole si è rivelato essere un blocco server che conteneva:

        listen  127.0.0.1:80;
        listen  [::1]:80 ipv6only=on;
        server_name  localhost;

Su Linux, un socket in ascolto su un IP specifico (ad es. [::1]:80) È in conflitto con un socket in ascolto sulla stessa porta ma su qualsiasi IP (ad es [::]:80.). Normalmente nginx affronterà in modo trasparente questo problema usando un singolo socket dietro questa scena. Tuttavia, specificando esplicitamente ipv6only(o alcune altre opzioni) sulla direttiva hear si impone a nginx di (provare a) creare un socket separato per essa, determinando cosìAddress already in use errore.

Poiché ipv6only=oncomunque è l'impostazione predefinita (dall'1.3.4), la correzione consisteva semplicemente nel rimuovere quell'opzione da questa direttiva e assicurarsi che ipv6onlynon fosse usato in nessun altro punto della mia configurazione.


0

Ho lo stesso problema, ma vedo che la porta 80 ascoltata da Nginx:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      9730/nginx 

Ma quando provo a riavviarlo, ho l'errore:

    service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()

Il mio problema era nel file di configurazione, ho impostato il file PID e sembra che il sistema non riesca a rilevarlo correttamente:

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

Quando l'ho rimosso, ha funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.