Вы не зашли.
Главная » Компьютеры/Софт » Как отследить данные которые проходят через nginx
#1. TLENS Off (14)
Moderator
2015.09.08 12:12
У меня настроен proxy сервер и проскакивает часто какая то ошибка. Не могу понять что за ошибка. Надо бы взглянуть какие данные (заголовки) nginx передает удаленному серверу
#2. TLENS Off (14)
Moderator
2015.09.08 13:01
Нашел уже решение. Воспользовался tcpdump
#3. Gemorroj Off (108)
Administrator
2015.09.08 14:02
рассказал бы подробнее)
#4. TLENS Off (14)
Moderator
2015.09.08 18:06
Как посмотреть передаваемые данные я понял. Но свою проблему так и не решил. А по поводу сниффа то запускал командой tcpdump -i eth0 port 80 -w ./dump.txt и в дампе лежат все данные
Добавлено спустя   2 минуты  46 секунд:
Вообще не врубаюсь почему vk возвращает мне ошибку. Сейчас синий позже скину настройки nginx. Может ты мне что то подскажешь я уже неделлю ебусь с ним. Когда то методом тыка нашел решения но сейчас не пойму почему все так выходит
#5. TLENS Off (14)
Moderator
2015.09.10 12:12
Так как я использовал ipv6 и ipv4 то проблема был изза ресольвера потому что хост доступен по обоим протоколам а я явно указывал связывать исходящий запрос через нужный мне интерфейс. Решил вопрос просто преобразованием хоста в ip. Так как ip уже известен после проверки доступности файла
Код:
<?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;
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.014 s