Описание проблемы
После переноса сайтов с одного облачного хостинга на VPS возникли две проблемы. Первая: при первом посещении сайта пользователем без сохраненных cookie браузер выдает ошибку ERR_TIMED_OUT, после чего сайт открывается нормально. Вторая: ранее работавший редирект из .htaccess перестал функционировать, требуется перенастроить его на сервере Nginx.
Почему возникает ошибка ERR_TIMED_OUT?
Ошибка указывает на тайм-аут соединения с сервером. Наиболее вероятная причина - конфликт в настройках кэширования или неправильная конфигурация сервера, когда первый запрос обрабатывается медленно (например, из-за компиляции PHP или установки сессии), а стоп-критичное время ожидания выставлено слишком маленьким. Для VPS обычно нужно оптимизировать FastCGI (PHP-FPM) и KeepAlive в Nginx.
Переставший работать редирект
После переезда на VPS ваш .htaccess (характерный для Apache) перестал применяться, так как на Nginx используется свой формат конфигурации. Редиректы нужно прописывать напрямую в файл конфигурации Nginx (обычно в блоке server).
Что нужно сделать:
Пример рабочего подхода
Вставьте в блок server вашего Nginx (обычно файл /etc/nginx/sites-available/site.conf):
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
# Увеличьте таймаут
fastcgi_read_timeout 300;
}
# Пример редиректа с сохранением old-page -> new-page
rewrite ^/old-page(.*)$ /new-page$1 permanent;После внесения изменений выполните sudo nginx -t для проверки, затем sudo systemctl reload nginx.