Tôi có hai máy chủ ảo.
Phiên bản cũ: Ubuntu 12.04 với PHP 7.2.
Phiên bản mới: CentOS 7.9 với PHP 8.0.
Trên cả hai máy chủ, cùng một ứng dụng đang chạy. Một cron đang nhận được một số chi tiết từ một trang web khác. tương tự như đoạn mã sau
file_get_contents("http://mirror.facebook.net/centos/timestamp.txt")
Trên máy chủ cũ, nó hoạt động tốt. Tôi chưa bao giờ có vấn đề. Trên máy chủ mới, đôi khi tôi có Thông báo này
Cảnh báo: file_get_contents(mirror.facebook.net/centos/timestamp.txt): Không thể mở luồng: Yêu cầu HTTP không thành công! HTTP/1.0 502 Cổng Xấu
Tôi không biết tại sao điều này lại xảy ra. Nó ảnh hưởng đến khoảng 1% các cuộc gọi.
Có ai có ý tưởng nơi tôi có thể tìm kiếm và những gì tôi có thể làm để giải quyết vấn đề không?
[CHỈNH SỬA] Tôi đã triển khai theo dõi lỗi và thời gian như được đề cập bên dưới.
Đầu tiên mã:
$t0 = microtime(true);
$jsonString = file_get_contents($pageUrl);
nếu ($jsonString === false) {
$t1 = microtime(true);
var_dump(sprintf(
'Fehler beim Abruf der URL %s',
$pageUrl,
));
var_dump($t1 - $t0);
var_dump(error_get_last());
trả về 0;
}
Bây giờ kết quả.
mảng(4) {
["loại"]=>
int(2)
["tin nhắn"]=>
string(145) "file_get_contents(https://www.example.com/): Không thể mở luồng: Yêu cầu HTTP không thành công! HTTP/1.0 502 Bad Gateway
"
["tập tin"]=>
chuỗi (62) "/path/to/src/Service/WebcrawlerService.php"
["dòng"]=>
int(61)
}
Thật đáng buồn là kết quả KHÔNG cung cấp thêm nhiều chi tiết. Vẫn là 502