#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
Сообщений: 6588
Карма: 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
 
        $pUrl parse_url($linkObject['url']);
        
        
        // Проверка существования удаленного файла
        $ch curl_init($linkObject['url']);
        curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        curl_setopt($chCURLOPT_HTTPHEADER, ["Cookie: {$data['cookie']}"]);
        curl_setopt($chCURLOPT_NOBODYtrue);
        curl_setopt($chCURLOPT_HEADERtrue);
        curl_setopt($chCURLOPT_INTERFACE$linkObject['local_ip']);
        curl_setopt($chCURLOPT_DNS_CACHE_TIMEOUT0);
        curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
        curl_setopt($chCURLOPT_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.012 s