#1 2015.09.08 12:42

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Как отследить данные которые проходят через nginx

У меня настроен proxy сервер и проскакивает часто какая то ошибка. Не могу понять что за ошибка. Надо бы взглянуть какие данные (заголовки) nginx передает удаленному серверу

Неактивен

#2 2015.09.08 13:20

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Как отследить данные которые проходят через nginx

Нашел уже решение. Воспользовался tcpdump

Неактивен

#3 2015.09.08 14:07

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Как отследить данные которые проходят через nginx

рассказал бы подробнее)

Неактивен

#4 2015.09.08 18:40

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Как отследить данные которые проходят через nginx

Как посмотреть передаваемые данные я понял. Но свою проблему так и не решил. А по поводу сниффа то запускал командой tcpdump -i eth0 port 80 -w ./dump.txt и в дампе лежат все данные
Добавлено спустя   2 минуты  46 секунд:
Вообще не врубаюсь почему vk возвращает мне ошибку. Сейчас синий позже скину настройки nginx. Может ты мне что то подскажешь я уже неделлю ебусь с ним. Когда то методом тыка нашел решения но сейчас не пойму почему все так выходит

Неактивен

#5 2015.09.10 12:20

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Как отследить данные которые проходят через nginx

Так как я использовал ipv6 и ipv4 то проблема был изза ресольвера потому что хост доступен по обоим протоколам а я явно указывал связывать исходящий запрос через нужный мне интерфейс. Решил вопрос просто преобразованием хоста в ip. Так как ip уже известен после проверки доступности файла

Код:

1
span style="color: #0000BB"><?php $pUrl = parse_url($linkObject['url']); // Проверка существования удаленного файла $ch = curl_init($linkObject['url']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Cookie: {$data['cookie']}"]); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_INTERFACE, $linkObject['local_ip']); curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_IPRESOLVE, (false !== strpos($linkObject['local_ip'], ':') ? CURL_IPRESOLVE_V6 : CURL_IPRESOLVE_V4)); $result = curl_exec($ch); $error = curl_error($ch); if ($error) { //log return $this->errorAction(Response::HTTP_INTERNAL_SERVER_ERROR); } $info = curl_getinfo($ch); if ($info['http_code'] != 200 || strpos($info['content_type'], 'video') === false) { // log return $this->errorAction(Response::HTTP_INTERNAL_SERVER_ERROR); } // переобразование хоста в ip $primaryIp = (strpos($info['primary_ip'], ':') ? "[{$info['primary_ip']}]" : $info['primary_ip']) . ($pUrl['scheme'] == 'https' ? ':443' : ''); // новый url с ip адресом $nUrl = $pUrl['scheme'] . '://' . $primaryIp . $pUrl['path'] . (isset($pUrl['query']) ? '?'. $pUrl['query'] : ''); $url = urlencode($nUrl); $host = urlencode($pUrl['host']); $interface = urlencode($linkObject['local_ip']); $cookie = urlencode(@$data['cookie']); $request = "/download/?url=$url&bind=$interface&host=$host&cookie=$cookie"; // передаем в nginx header("X-Accel-Redirect: $request"); exit;

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.009 s