Написал скрипт, который автоматически будет определять робота и на лету делать для него снапшот страницы. Написал код в php, который проверяет, существует ли снапшот. И если нет, то запускает команду exec('cd /var/www/developer/; node doSingleSnapshot.js https://www.example.com'). Открываю страницу, на которой должен выполниться скрипт и замечаю, что сервер начал подтормаживать. Иду в логи и вижу, что каждую секунду в error.log веб-сервера nginx пишется строка с ошибкой 110: Connection timed out. Смотрю в код, что мог сделать не так. Вроде всё в порядке. Пытаюсь обновить страницу, а всё. Сервер лежит. SSH не откликается, как и SFTP. Веб-сервер тоже лежит. Даже ребутнуть сервак через веб-панель хостера(OVH) не могу. Что могло вызвать такое поведение сервера и как мне теперь его поднять? У PHP или NodeJS же должен быть какой-то авто-рубильник?
Увы, код привести не могу, меня выбросило из редактора как только пропал коннект к sftp. Возможно, кто-то сталкивался с подобным или хоть примерно знаком.
UPD: сервер поднялся, логи пустые. Добавляю код:
if(strpos($ua, 'YandexBot') !== false) {
$snapshot_name = '/var/www/production/flaut/snapshots' . $_SERVER['REQUEST_URI'] . 'index.html';
if(file_exists($snapshot_name)) {
$now = time();
$snapshot_created = filemtime($snapshot_name);
$datediff = $now - $my_date;
if( round($datediff / (60 * 60 * 24)) > 30) {
exec('cd /var/www/developer/flaut/dev; node doSingleSnapshot.js ' . urlencode('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );
}
} else {
exec('cd /var/www/developer/flaut/dev; node doSingleSnapshot.js ' . urlencode('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );
}
return require('/var/www/production/flaut/snapshots' . $_SERVER['REQUEST_URI'] . 'index.html');
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости