LINUX.ORG.RU

Не доходит Post запрос до моего сервера

 , , ,


0

1

Здравствуйте уважаемые.
проблема в следующем

С чужого сервера приходят данные, но на моём сервере они не фиксируется.
объясняется тем что сервер который высылает данные недожидаясь ответа закрывает канал связи.
NGINX воспринимает такой подход как хакерскую атаку.
я установил параметр proxy_ignore_client_abort on, хотя это противоречит защите nginx, но всё равно данные не приходят.
когда запускаю скрипт на локалке до моего сервера данные доходят а с чужого сервера никак.

надеюсь смог доходчиво объяснить. в чём может быть проблема?
спасибо заранее



Последнее исправление: samedovr (всего исправлений: 1)

С чужого сервера приходят данные, но на моём сервере они не фиксируется.

Определись уже - приходят или не фиксируются? Ты уверен что удалённый сервер сделал запрос? Собери дамп, посмотри его. Даже если ssl, при наличии закрытого ключа ты можешь увидеть обмен http://wiki.wireshark.org/SSL

объясняется тем что сервер который высылает данные недожидаясь ответа закрывает канал связи.

У клиента кривой скрипт, который никак не пытается обработать ответ ( тупо шлёт данные и отключается ) или же проблема на твоей стороне ( например, скрипт не успевает обработать данные ) и клиент отваливается по тайм-ауту? Смотри логи nginx'а. Необходимо смотреть как access log, так и error log

когда запускаю скрипт на локалке до моего сервера данные доходят а с чужого сервера никак.

Вот и сравнивай дамп и логи для двух случаев.

Твоих данных не хватает для моего скила телепатии.

router ★★★★★
()
Ответ на: комментарий от router

Кстати, идея. В первую очередь проверь что в логах nginx'а нет редиректа ( 301 или 302 ). Возможно ты криво настроил nginx.

Если на post запрос nginx возвращает редирект, клиент думает что своё дело сделал и к новому адресу выполняет уже обычный get, без параметров.

router ★★★★★
()

RFC 2616, и не парь себе мозг.

unborn
()
Ответ на: комментарий от linuxnewb

щито? клиент либо отправил данные, либо нет, причем тут тайм-аут?

Клиенту либо возвращают ответ ( например, 200 или 5xx ), либо соединение разрывается по таймауту. На вашем локалхосте по-другому?

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

Если reverse proxy ( nginx ) настроен некорректно, запрос может и пришёл на nginx, но на backend не попал.

Так понятно? Попытка выпендриться не удалась ;)

router ★★★★★
()
Ответ на: комментарий от router

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

Клиент может вообще не ждать ответа, это никак не помешает получить уже отправленные им данные. То, что эти данные заблудились по дороге — вопрос другой.

linuxnewb
()
Ответ на: комментарий от linuxnewb

Клиент может вообще не ждать ответа, это никак не помешает получить уже отправленные им данные.

Софт, написанный не-быдлокодерами, в этом случае должен прервать/откатить транзакцию.

Получить - чем? nginx'ом? Ему глубоко параллельно на эти прикладные данные.

router ★★★★★
()
Ответ на: комментарий от router

Софт, написанный не-быдлокодерами, в этом случае должен прервать/откатить транзакцию.

Какой софт? Что за транзакция?

Получить - чем?

Клиенту глубоко параллельно, в частности, чем ты там получаешь «эти прикладные данные» и дальнейшая их судьба в целом.

linuxnewb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.