Назад | Перейти на главную страницу

Как я могу устранить неполадки, связанные с истечением времени ожидания субдомена Apache?

У меня есть несколько поддоменов на моем сервере, и все они дают мне тайм-ауты при контакте с любым http-клиентом (либо в HTTP на 80 или HTTPS на 443, в зависимости от поддомена).

Например : http://test.yosko.net

При обращении напрямую с того же сервера HTTP-запрос работает и регистрируется Apache:

$ wget http://test.yosko.net/
...
2020-08-19 12:34:20 (603 KB/s) - ‘index.html’ saved [6/6]

Но когда это делается из любого другого клиента, я получаю тайм-аут и ничего не могу найти в error.log или access.log Apache.

Сначала я подумал о проблеме с конфигурацией моего certbot для моих поддоменов HTTPS, но, поскольку это то же самое для поддоменов HTTP, я полагаю, что это более широкая проблема. Поскольку на сервере нет прокси или обратного прокси, я не вижу, откуда он.

Это произошло внезапно, без каких-либо изменений с моей стороны несколько дней назад, и с тех пор все работало несколько часов то тут, то там между длительными периодами сбоев.

Есть идеи, как это исправить?

Дополнительная информация: я использую Apache 2.4 на сервере Ubuntu 20.04.

Изменить 1: проблема IPv6

Как было предложено Вот, Я проверил свою ссылку выше на ipv6-test.com и действительно дал тайм-аут. Я полагаю, что мой интернет-провайдер пытается связаться с моим веб-сайтом по IPv6 (где он терпит неудачу), тогда как другие люди все еще пытаются использовать IPv4 (где он работает).

Но теперь я понимаю, что мог бы попробовать сам. От моих клиентов:

$ wget -4 http://test.yosko.net/
...
2020-08-20 09:25:53 (151 KB/s) - «index.html» enregistré [6/6]

$ wget -6 http://test.yosko.net/
...
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.

Изменить 2: текущая конфигурация

Мой нынешний /etc/apache2/ports.conf по умолчанию, прослушивание со всех IP-адресов:

Listen 80

И он действительно работает с IPv6 (см. "tcp6"упоминание):

$ sudo netstat -lnptu | grep "apache2\W*$"
tcp6       0      0 :::443                  :::*                    LISTEN      89445/apache2       
tcp6       0      0 :::80                   :::*                    LISTEN      89445/apache2

И мои хосты тоже:

<VirtualHost *:80>

Я тоже пробовал это, но проблема осталась:

<VirtualHost *:80 [::]:80>

Сайт test.yosko.net разрешает адреса как IPv4, так и IPv6:

triss:~> dig test.yosko.net +short
yosko.net.
91.121.170.211
triss:~> dig test.yosko.net +short aaaa
yosko.net.
2001:41d0:1:ebd3::1

но он даже не отвечает на пинг по IPv6:

triss:~> ping -6 -c 20 test.yosko.net
PING test.yosko.net(2001:41d0:1:ebd3::1 (2001:41d0:1:ebd3::1)) 56 data bytes

--- test.yosko.net ping statistics ---
20 packets transmitted, 0 received, 100% packet loss, time 493ms

Вы уверены, что правильно настроили IPv6 на этом хосте? Если да - установлен ли межсетевой экран и блокирует ли его? Если вы используете туннель - включили ли вы соответствующий протокол в брандмауэре IPv4 и правильно ли установили MTU на интерфейсе туннеля?

А пока я предлагаю удалить запись AAAA для этого имени хоста и повторно включить ее только после того, как будет доказано, что IPv6 работает.