Am două servere virtuale.
Vechiul: Ubuntu 12.04 cu PHP 7.2.
Noul: CentOS 7.9 cu PHP 8.0.
Pe ambele servere rulează aceeași aplicație. Un cron primește cu minut câteva detalii de pe un alt site web. similar cu următorul cod
file_get_contents("http://mirror.facebook.net/centos/timestamp.txt")
Pe vechiul server a funcționat bine. Nu am avut niciodată probleme. Pe noul server, am uneori acest mesaj
Avertisment: file_get_contents(mirror.facebook.net/centos/timestamp.txt): Nu s-a putut deschide fluxul: Solicitarea HTTP a eșuat! HTTP/1.0 502 Gateway greșit
Nu am idee de ce se întâmplă asta. Afectează aproximativ 1% din apeluri.
Are cineva idee unde as putea sa caut si ce as putea face pentru a rezolva problema?
[EDITAȚI | ×] Am implementat eroarea și urmărirea timpului așa cum este menționat mai jos.
Mai intai codul:
$t0 = microtimp(adevărat);
$jsonString = file_get_contents($pageUrl);
dacă ($jsonString === fals) {
$t1 = microtimp(adevărat);
var_dump(sprintf(
„Fehler beim Abruf der URL %s”,
$pageUrl,
));
var_dump($t1 - $t0);
var_dump(error_get_last());
returnează 0;
}
Acum rezultatul.
matrice(4) {
["tip"] =>
int(2)
[„mesaj”] =>
string(145) "file_get_contents(https://www.example.com/): Nu s-a putut deschide fluxul: Solicitarea HTTP a eșuat! HTTP/1.0 502 Gateway incorect
"
[„fișier”] =>
string(62) „/path/to/src/Service/WebcrawlerService.php”
["linie"] =>
int(61)
}
Rezultatul, din păcate, NU oferă multe detalii. Mai este 502