Linode on päivitetty taas~ Mutta koska vanha kone japanilaisessa tietokonehuoneessa kestää muutaman viikon, en malta odottaa, joten avasin uuden koneen suunnitellen muuttavani kotiin ja muuten pyyhkiväni pois tarpeettomat roskat palvelimelta.
Uusi kone käyttää lnmp-one-click-asennusskriptiä, jonka kirjoitin itse (itse asiassa suurin osa koodista löytyy verkosta = =##), ja kun olin tehnyt skriptin DigitalOceanissa, laitoin sen Linodelle asennettavaksi. Asennuksessa ja siirrossa ei ollut ongelmia, mutta heti kun se käynnistettiin uudelleen asennuksen jälkeen, ilmeni ongelma.
Uudelleenkäynnistyksen jälkeen on loogista, että Nginx käynnistyy automaattisesti, mutta pitkän odotuksen jälkeen sivustolle ei vieläkään pääse käsiksi. Kirjaudu SSH:hen ja suorita:
Palvelu Nginx Start
Käynnistä Nginx manuaalisesti, niin verkkosivusto on käytettävissä hetkessä. Itsekäynnistysskripti toimii hyvin, eikä manuaalisessa käynnistyksessä ole ongelmaa, miksi nginx ei vain käynnisty?
Selaillessani lokkeja löysin rivin näin:
2014/05/02 17:02:28 [emerg] 2912#0: bind() to [2400:8900::f03c:91ff:fe6e:5889]:80 failed (99: Ei voi määrittää pyydettyä osoitetta)
Tuntuu siltä, että Nginxin käynnistyessä IPv6:ta ei ole alustettu, joten käynnistys epäonnistui. Kun kirjaudun SSH:hen ja käynnistän Nginxin manuaalisesti, ipv6 on jo alustettu, joten se voi käynnistyä normaalisti.
Luultavasti arvasit syyn, miten sen voisi ratkaista? Pitkän Google-päivän jälkeen löysin vastaavan ongelman ja ratkaisun ServerFaultista, ja tallennan sen tänne.
Lisää /etc/sysctl.conf:
- sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Kopioi koodi Tai:
Lisää rivi /etc/network/interfaces:
- post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Kopioi koodi Käytän jälkimmäistä menetelmää ongelman ratkaisemiseen.
|