Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12629|Antwoord: 0

[Web] Nginx zelf-opstart mislukte

[Link kopiëren]
Geplaatst op 30-05-2015 23:46:28 | | |

Linode is weer geüpgraded~ Maar omdat de oude machine in de Japanse computerruimte een paar weken nodig heeft om te upgraden, kan ik niet wachten, dus heb ik een nieuwe machine geopend, met het plan om naar huis te verhuizen, en trouwens, het onnodige afval van de server weg te vegen.

De nieuwe machine gebruikt het lnmp één-klik installatiescript dat ik zelf heb geschreven (in feite is het grootste deel van de code online te vinden = =##), en nadat ik het script op DigitalOcean had gemaakt, heb ik het op Linode gezet om te installeren. Er was geen probleem met installatie en verplaatsen, maar zodra het opnieuw werd opgestart na de installatie, was er een probleem.


Na het herstarten is het logisch dat Nginx automatisch zou moeten starten, maar na lange tijd wachten is de website nog steeds niet toegankelijk. Log in op SSH en voer uit:

Dienst nginx start

Start Nginx handmatig en de website is in een mum van tijd toegankelijk. Het zelfstartende script werkt prima, en er is geen probleem met handmatig starten, waarom start nginx gewoon niet?

Toen ik de logboeken doorzocht, vond ik een regel als deze:

2014/05/02 17:02:28 [emerg] 2912#0: bind() aan [2400:8900::f03c:91FF:FE6e:5889]:80 mislukt (99: Kan het gevraagde adres niet toewijzen)

Het voelt alsof IPv6 bij het starten van Nginx nog niet is geïnitialiseerd, dus de opstart is mislukt. Wanneer ik inlog op SSH en Nginx handmatig start, is IPv6 al geïnitialiseerd, dus het kan normaal starten.

Waarschijnlijk had ik de reden geraden, hoe los je het op? Na een lange dag Google vond ik een soortgelijk probleem en oplossing op ServerFault, en ik zal het hier vastleggen.

Invoegen in /etc/sysctl.conf:
  1. sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Code kopiëren
Of:

Voeg een lijn toe in /etc/network/interfaces:
  1. post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Code kopiëren
Ik gebruik de laatste methode om het probleem op te lossen.




Vorig:Over Discuz! (X3.1) Hoe https-encryptie inschakelen
Volgend:Houpu Cup Deelnemende Projecten
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com