ฉันมีเซิร์ฟเวอร์เสมือนสองเครื่อง
เก่า: Ubuntu 12.04 พร้อม PHP 7.2
ใหม่: CentOS 7.9 พร้อม PHP 8.0
บนเซิร์ฟเวอร์ทั้งสองแอปพลิเคชันเดียวกันกำลังทำงานอยู่ cron ได้รับรายละเอียดเล็กน้อยจากเว็บไซต์อื่น คล้ายกับรหัสต่อไปนี้
file_get_contents("http://mirror.facebook.net/centos/timestamp.txt")
บนเซิร์ฟเวอร์เก่าทำงานได้ดี ฉันไม่เคยมีปัญหา บนเซิร์ฟเวอร์ใหม่ บางครั้งฉันมีข้อความนี้
คำเตือน: file_get_contents (mirror.facebook.net/centos/timestamp.txt): ไม่สามารถเปิดสตรีม: คำขอ HTTP ล้มเหลว! HTTP/1.0 502 เกตเวย์ไม่ถูกต้อง
ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น มีผลกับการโทรประมาณ 1%
ใครบ้างมีความคิดที่ฉันสามารถดูได้และสิ่งที่ฉันสามารถทำได้เพื่อแก้ปัญหา?
[แก้ไข] ฉันใช้ข้อผิดพลาดและการติดตามเวลาตามที่กล่าวไว้ด้านล่าง
รหัสแรก:
$t0 = ไมโครไทม์(จริง);
$jsonString = file_get_contents($pageUrl);
ถ้า ($jsonString === เท็จ) {
$t1 = ไมโครไทม์(จริง);
var_dump(sprintf(
'Fehler beim Abruf der URL %s',
$pageUrl,
));
var_dump($t1 - $t0);
var_dump(error_get_last());
กลับ 0;
}
ตอนนี้ผล
อาร์เรย์ (4) {
["ประเภท"]=>
int(2)
["ข้อความ"]=>
string(145) "file_get_contents(https://www.example.com/): ไม่สามารถเปิดสตรีม: คำขอ HTTP ล้มเหลว! HTTP/1.0 502 เกตเวย์ไม่ถูกต้อง
"
["ไฟล์"]=>
สตริง (62) "/path/to/src/Service/WebcrawlerService.php"
["สาย"]=>
int(61)
}
ผลที่ได้คือน่าเศร้าที่ไม่ได้ให้รายละเอียดเพิ่มเติมมากนัก ยังคงเป็น 502