504 Gateway Time-out. Непонятна причина возникновения

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
1405

Вообщем суть проблемы:

Есть файл, в нем лежат некоторые данные(каждая строка, своя инфа)

Скрипт(будет пускаться по крону, но пока рУками), который открывает файл номер1 и читает из него данные. Там есть Айпи адрес, и он пробивается по геоАйПи базе(www.geoiptool.com, круче не нашел. Сокетом открываю, беру что надо и пишу в тот самый файл). Потом отправляет на мыло данные(10-11 секунд на 1 итерацию цикла).

Уже при 6 итерациях отвечает 504 Gateway Time-out.

Покурил гугла, понел, что апач не успевает ответить NginX'y.

Поставил уже max_execution_time(180) и на всякий max_memory_limit(512M), но бесполезняк.

Но есть одно "НО" - все письма удачно доходят, даже когда их 10-12.

Вот и думал забить на ошибку, раз все гуд, но че-та бешшшшеного желания не имею, ибо хочу чтобы все работало правильно и корректно:)

ЗЫ. кто знает более быстрые FREE методы получения хоста, страны, региона, города по АйПи адресу - буду признателен.

ЗЗЫ. юзал уже не один и не 2 подобных сервиса(без API), они либо отдают неверную(устаревшую) информацию, либо вообще не показывают больше половины данных. Пробывал API-шный ru.smart-ip.net, но он тоже чет жадный на информацию:)

ЗЗЗЫ. Чтобы сервис был бесплатным - не моя прихоть! Заказчика интересует только бесплатный вариант.

Кто, что скажет?

Добавлено позже:

Еще погуглил и понел, что это запара в настройках NginX'а( proxy_read_timeout X, proxy_connect_timeout X).

Но если это будет запускаться по Крону, то будет работать только апач, я правильно понимаю? Если так, а я думаю так, потому что отдавать ничего никому не надо будет, то это хорошо:)

Подпись))
bay_ebook
На сайте с 28.05.2010
Offline
111
#1

ну, что бы апач отвечал и браузер не закрывал соединении можно делать так


ob_start();
echo 'Start pars <br />';
ob_flush();
flush();

for($i = 0; $i <= 1000; $i++){
echo '<br />'.$i ;
ob_flush();
flush();
}

echo '<br />Finish pars';
ob_flush();
flush();
ob_clean();

такой код будет выводить надписи в браузер, не дожидаясь завершения работы скрипта скрипта - тоесть в живом режиме ,хоть несколько часов подряд.

А для крона будет достаточно


ignore_user_abort(true);

и плевать на то ,что что-то там отрубило браузер, главное что бы скрипт был не зациклен на бесконечность, а то сервер загнется :)

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
Апокалипсис
На сайте с 02.11.2008
Offline
391
#2
bay_ebook:
ну, что бы апач отвечал и браузер не закрывал соединении можно делать так

Если сервер отдает страницы без сжатия, то прокатит :)

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Спасибо, ребята, помогли.

А что скажите на счет другого сервиса для получения данных по АйПишнику?

Апокалипсис
На сайте с 02.11.2008
Offline
391
#4

Милованов Ю.С, Пожалуйста: http://www.php.net/manual/ru/book.geoip.php

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий