Wie kann ich ein Timeout einer Apache-Subdomäne beheben?

Wie kann ich ein Timeout einer Apache-Subdomäne beheben?

Ich habe mehrere Subdomänen auf meinem Server, die alle bei der Kontaktaufnahme von einem beliebigen HTTP-Client aus Timeouts verursachen (je nach Subdomäne entweder bei HTTP auf 80 oder bei HTTPS auf 443).

Zum Beispiel :http://test.yosko.net

Bei direkter Kontaktaufnahme vom selben Server aus funktioniert die HTTP-Anfrage und wird von Apache protokolliert:

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

Aber wenn ich es von einem anderen Client aus mache, tritt eine Zeitüberschreitung auf und ich kann in Apaches error.log oder access.log nichts finden.

Zuerst dachte ich, es liege ein Problem mit meiner Certbot-Konfiguration für meine HTTPS-Subdomains vor, aber da es bei den HTTP-Subdomains dasselbe ist, nehme ich an, dass es sich um ein umfassenderes Problem handelt. Da auf dem Server weder ein Proxy noch ein Reverse-Proxy vorhanden ist, kann ich nicht erkennen, woher das Problem kommt.

Es geschah plötzlich, ohne dass ich vor ein paar Tagen etwas getan hätte, und seitdem funktionierte alles zwischendurch immer mal wieder für ein paar Stunden, allerdings mit längeren Störungsphasen.

Irgendwelche Ideen zur Fehlerbehebung?

Zusätzliche Informationen: Ich verwende Apache 2.4 auf einem Ubuntu Server 20.04.

Bearbeitung 1: IPv6-Problem

Wie vorgeschlagenHier, ich habe meinen Link oben getestet aufipv6-test.comund es gab tatsächlich ein Timeout. Ich nehme an, dass mein ISP versucht, meine Website über IPv6 zu kontaktieren (wo es fehlschlägt), während andere Leute es immer noch über IPv4 versuchen (wo es funktioniert).

Aber jetzt sehe ich, dass ich es selbst hätte versuchen können. Von meinen Kunden:

$ 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.

Bearbeitung 2: aktuelle Konfiguration

Mein aktuelles /etc/apache2/ports.confist das Standard-Setup, das von allen IPs aus lauscht:

Listen 80

Und es funktioniert mit IPv6 (siehe " tcp6" Erwähnung):

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

Und auch meine Vhosts:

<VirtualHost *:80>

Ich habe dies auch versucht, aber das Problem besteht weiterhin:

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

Antwort1

Die Site test.yosko.net wird sowohl in IPv4- als auch in IPv6-Adressen aufgelöst:

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

aber es reagiert nicht einmal auf Ping auf 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

Sind Sie sicher, dass Sie IPv6 auf diesem Host richtig konfiguriert haben? Wenn ja – ist eine Firewall vorhanden und blockiert es? Wenn Sie einen Tunnel verwenden – haben Sie das entsprechende Protokoll in der IPv4-Firewall aktiviert und die richtige MTU für die Tunnelschnittstelle eingestellt?

In der Zwischenzeit schlage ich vor, den AAAA-Eintrag für diesen Hostnamen zu entfernen und ihn erst wieder zu aktivieren, wenn nachgewiesen ist, dass IPv6 funktioniert.

verwandte Informationen