@inkvizitor68sl конечно дал правильное направление. Но хочется добавить еще несколько важных моментов на случай, если окажется, что в конфиге все таймауты прописаны как у него по 180 сек, а скрипт таки отваливает все равно в районе минуты. Соль в следующем.
Если из PHP ни чего не возвращает до конца своей работы, то в действие вступает такая настройка как fastcgi_connect_timeout. proxy_read_timeout тут еще не работает (т.к. по сути соединение не считается установленным). Причем максимальная величина fastcgi_connect_timeout - 75 секунд и это величина захаркожена в самом nginx. Поэтому если скрипт должен работать дольше, то нужно из PHP echo-нуть что нибудь.
Есть более правильное решение - выполнять долгие процессы не в контексте веб сервера, разделяя интерфейс постановки задачи и её выполнения.
Например, ставить задачи через веб интерфейс, а выполнять в скрипте запускаемом кроном.
Если надо получать обратную связь, можно периодически записывать процесс выполнения в какое-нибудь хранилище (файл, база, key-value), и отображать его на стороне клиента, делая периодические ajax запросы.