Linode беше ъпгрейднат отново~ Но тъй като старата машина в японската компютърна зала ще отнеме няколко седмици за ъпгрейд, нямам търпение, затова отворих нова машина, планирайки да се върна у дома и, между другото, да изметя излишния боклук от сървъра.
Новата машина използва lnmp скрипта за инсталация с едно кликване, който сам написах (всъщност повечето от кода се намира онлайн = =##), и след като направих скрипта в DigitalOcean, го сложих на Linode за инсталация. Нямаше проблем с монтажа и преместването, но веднага след инсталацията се появи проблем.
След рестартиране е логично Nginx да стартира автоматично, но след дълго чакане сайтът все още не може да бъде достъпен. Влезте в SSH и изпълнете:
Начало на услуга NGINX
Стартирайте Nginx ръчно и уебсайтът ще бъде достъпен за нула време. Скриптът за самостартиране е наред и няма проблем с ръчното стартиране, защо nginx просто не стартира?
Преглеждайки дневниците, намерих ред като тази:
2014/05/02 17:02:28 [Emerg] 2912#0: bind() към [2400:8900::f03c:91ff:fe6e:5889]:80 се провали (99: Не може да се присвои поискан адрес)
Изглежда, че при стартиране на Nginx IPv6 не е инициализиран, така че стартирането се е провалило. Когато вляза в SSH и ръчно стартирам Nginx, IPv6 вече е инициализиран, така че може да стартира нормално.
Вероятно познах причината, как да го реша? След дълъг ден в Google, намерих подобен проблем и решение в ServerFault и ще го запиша тук.
Вмъкнете в /etc/sysctl.conf:
- sysctl -w net.ipv6.conf.eth0.dad_transmits=0
Копирай код Или:
Добавете линия в /etc/network/interfaces:
- post-up while ip -6 addr show tentative | grep . > /dev/null ; do sleep 1 ; done
Копирай код Аз използвам втория метод, за да реша проблема.
|