Linode è stato aggiornato di nuovo~ Ma poiché la vecchia macchina nella sala computer giapponese richiederà qualche settimana per essere aggiornata, non vedo l'ora, così ho aperto una nuova macchina, pianificando di tornare a casa e, tra l'altro, di spazzare via la spazzatura inutile sul server.
La nuova macchina usa lo script di installazione lnmp a un clic che ho scritto io stesso (in effetti, la maggior parte del codice si trova online = =##), e dopo aver creato lo script su DigitalOcean, l'ho messo su Linode per l'installazione. Non c'è stato alcun problema con l'installazione e il trasloco, ma appena è stato riavviato dopo l'installazione, è stato un problema.
Dopo il riavvio, è logico pensare che Nginx debba avviarsi automaticamente, ma dopo aver aspettato a lungo, il sito web non può ancora essere accessibile. Accedi a SSH ed esegui:
Inizio servizio Nginx
Lancia Nginx manualmente e il sito web sarà accessibile in pochissimo tempo. Lo script di avvio autonomo va bene, e non c'è problema con l'avvio manuale, perché nginx semplicemente non si avvia?
Guardando nei log, ho trovato una riga come questa:
02/05/2014 17:02:28 [emergenza] 2912#0: bind() a [2400:8900::f03c:91ff:fe6e:5889]:80 fallito (99: impossibile assegnare l'indirizzo richiesto)
Sembra che all'avvio di Nginx, IPv6 non sia stato inizializzato, quindi l'avvio non è stato attivato. Quando accedo a SSH e avvio manualmente Nginx, IPv6 è già stato inizializzato, quindi può partire normalmente.
Probabilmente avete indovinato il motivo, come risolvere la cosa? Dopo una lunga giornata su Google, ho trovato un problema e una soluzione simili su ServerFault, e la registrerò qui.
Inserisci in /etc/sysctl.conf:
- sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Copia codice O:
Aggiungi una linea in /etc/network/interface:
- post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Copia codice Io uso quest'ultimo metodo per risolvere il problema.
|