Вы не зашли.
Главная » Компьютеры/Софт » Как отследить данные которые проходят через 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 (107)
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 уже известен после проверки доступности файла
Код:
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;
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.014 s