Linode знову оновили~ Але оскільки старий комп'ютер у японській комп'ютерній кімнаті оновлюється кілька тижнів, я не можу дочекатися, тому відкрив новий комп'ютер, плануючи повернутися додому і, до речі, прибрати непотрібне сміття на сервері.
Нова машина використовує lnmp-скрипт установки в один клік, який я написав сам (насправді більшість коду знаходиться онлайн = =##), і після створення скрипта на DigitalOcean я встановив його на Linode для встановлення. Проблем із встановленням і перенесенням не було, але як тільки після встановлення знову запустили, виникла проблема.
Після перезавантаження логічно припустити, що Nginx має запускатися автоматично, але після тривалого очікування сайт все одно неможливо отримати доступ. Увійдіть у SSH і виконайте:
Сервіс NGINX START
Запустіть Nginx вручну, і сайт стане доступним дуже швидко. Самозапусковий скрипт працює нормально, і з ручним запуском проблем немає, чому nginx просто не запускається?
Переглядаючи журнали, я натрапив на таку лінію:
2014/05/02 17:02:28 [Emerg] 2912#0: прив'язати () до [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
Копія коду Я використовую останній спосіб для вирішення проблеми.
|