Linode znowu została zaktualizowana~ Ale ponieważ stary komputer w japońskim pokoju komputerowym zajmie kilka tygodni na aktualizację, nie mogę się doczekać, więc otworzyłem nowy komputer, planując wrócić do domu i przy okazji, zamiatać zbędne śmieci z serwera.
Nowa maszyna korzysta z instalacyjnego skryptu LNP na jedno kliknięcie, który sam napisałem (w rzeczywistości większość kodu jest dostępna online = =##), a po stworzeniu skryptu na DigitalOcean włączyłem go do Linode do instalacji. Nie było problemów z instalacją i przenoszeniem, ale gdy tylko po ponownym uruchomieniu po instalacji pojawił się problem.
Po ponownym uruchomieniu można przypuszczać, że Nginx powinien uruchomić się automatycznie, ale po długim oczekiwaniu strona nadal nie jest dostępna. Zaloguj się do SSH i wykonaj:
Uruchomienie usługi nginx
Uruchom Nginx ręcznie, a strona internetowa będzie dostępna w mgnieniu oka. Skrypt samouruchamiający się działa dobrze i nie ma problemu z ręcznym uruchamianiem, dlaczego nginx po prostu się nie uruchamia?
Przeglądając logi, znalazłem zdanie takie jak to:
2014/05/02 17:02:28 [emerg] 2912#0: przypisanie() do [2400:8900::f03c:91ff:fe6e:5889]:80 niepowodzenie (99: Nie można przypisać żądanego adresu)
Mam wrażenie, że przy uruchamianiu Nginx ipv6 nie zostało zainicjalizowane, więc uruchomienie się nie powiodło. Kiedy loguję się do SSH i ręcznie uruchamiam Nginx, ipv6 jest już zainicjalizowany, więc może się uruchomić normalnie.
Pewnie zgadłem powód, jak to rozwiązać? Po długim dniu szukania w Google znalazłem podobny problem i rozwiązanie na ServerFault, i zapiszę to tutaj.
Wstaw w /etc/sysctl.conf:
- sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Skopiuj kod Lub:
Dodaj linię w /etc/network/interfaces:
- post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Skopiuj kod Stosuję tę drugą metodę, żeby rozwiązać problem.
|