Сразу предупрежу, если вы получаете такое сообщение на обычном shared хостинге — то проблема скорее в том, что исполняемый скрипт не укладывается во временные рамки (30 или 60 секунд — в зависимости от настройки).
Это может быть по разным причинам:
- объем данных, обрабатываемых скриптом существенно вырос
- скрипт ображается к другим сайтам или сервисам, которые долго фомрируют ответ
- скрипт слишком тяжелый
Универсальных решений в таком случае нет. Вот несколько примеров:
Если объем данных большой — обрабатывайте по частям, не забывайте ставить метки (какая порция данных обрабатывается, какой статус обработки — чтобы не было такого — первая порция еще не обработана — зависла или еще в процессе и начинается обработка той же порции)
Если скрипт тяжелый — оптимизируйте. Погуглите — нет такой программы, которую нельзя улучшить.
Ну и самое оптимальное решение сообщения 504 Gateway Time-out nginx подойдет в том случае, если у вас выделенный сервер или VDS:
- в php.ini увеличить значение параметра PHP max_execution_time
- в конфиге nginx увеличить время ожидания исполнения скрипта:
proxy_read_timeout 120;
proxy_connect_timeout 120 - увеличить оперативной памяти
Конфиг nginx:
ОС Debian: /etc/nginx/nginx.conf
Просмотров: 1833
где конфиг лежит от nginx
Конфиг nginx:
ОС Debian: /etc/nginx/nginx.conf