Имя: Пароль:
IT
Админ
Поиск яндекса и squid
0 Asmody
 
21.05.13
11:30
Пару недель назад начались какие-то странности с поиском яндекса. Первая страница выдачи выходит нормально, но при клике по результату браузер открывает вкладку и задумывается. Может открыть, а может и нет.
При этом в сквиде висят соединения вида http://yanedx.ru/clck/...
Поведение браузеров немного отличаются. Если IE и FF вообще не грузят ничего, то Chrome и Opera, покрутив секунд 30-60, все таки загружают страницу.
Примерно такой же эффект при нажатии "Следующая" на странице поиска: браузер "подвисает" и выдает сообщение "Проверьте соединение с интернетом"
Никто не сталкивался?
1 CaMoJleT
 
21.05.13
11:33
Не сталкивался.
2 acsent
 
21.05.13
11:37
сталкивался с тем что при повторном поиске ничего не происходило, страница становилась белопрозрачной но результат не появлялся.
Лечилось через ф5
3 Ковычки
 
21.05.13
12:36
Сталкиваюс уже месяц
4 Fragster
 
гуру
21.05.13
12:37
яндекс тормозит
5 Ковычки
 
21.05.13
12:37
Причину не выяснял, научил кликать ссылку ниже
6 Ковычки
 
21.05.13
12:37
(4) нет
7 Fragster
 
гуру
21.05.13
12:38
(6) да
8 Ковычки
 
21.05.13
12:38
+ автор - ты в такой ветке вроде как уже участвовал
10 Ursus maritimus
 
21.05.13
12:40
(9) Лол
11 Exec
 
21.05.13
12:40
(0) проверь, может у тебя количество разрешённых дочек сквида заполнилось в момент, когда соединение снова устанавливается. У меня стоит 30 процессов на 200+ юзеров - вроде хватает. Дефолтных 5 не хватало :)
Ну и обнови сквид, на-всякий.
12 Ковычки
 
21.05.13
12:41
13 Exec
 
21.05.13
12:44
Кстати: http://crypta.yandex.ru/  - проверь, что о тебе скажет яндекс.шпион :)
14 Ковычки
 
21.05.13
12:51
(11) как обновить сквид на дебиан етч ?
15 Exec
 
21.05.13
13:03
(14) на freebsd - portupgrade, на centos/fedora - yum update, а на дебиане, не подскажу :( Через rpm, наверное?
2.7 ветка сквида умерда, 3.1 не поддерживается, 3.2 - закрывать собираются. Разрабы щас в какой-то растерянности - слепили 3.2, признали неработоспособным (точнее хреновоработоспособным), закрыв все предыдущие ветки. Щас сами с ужасом ждём новой версии и нововведений.
Так поищи пакет для дебиана 3.1/3.2 версий. Правда, если у тебя 2.х ветка, то х.з... там конфиги совершенно другие.
Вообщем - смотри сам :)
16 Asmody
 
21.05.13
13:07
(11) не, если бы дочек не хватало, валилось бы на всех сайтах. тот же поиск гугла работает как часы
17 Asmody
 
21.05.13
13:10
нашел похожие слёзы http://www.opennet.ru/openforum/vsluhforumID12/6988.html
18 Ковычки
 
21.05.13
13:18
(15) что смотреть ?
19 Ковычки
 
21.05.13
13:43
может это ?


cmd /v:on /q /c "for /f "tokens=4 delims=: " %x in ('netstat -a -n -p tcp ^| find ":80" ^| find /v "0.0.0.0"') do ( ping -a -n 1 %x  | find "yandex" )"

Обмен пакетами с bs.yandex.ru [213.180.204.90] с 32 байт данных:
Обмен пакетами с mc.yandex.ru [213.180.193.119] с 32 байт данных:
Обмен пакетами с static.yandex.net [213.180.193.215] с 32 байт данных:
Обмен пакетами с static.yandex.net [213.180.193.215] с 32 байт данных:
20 Exec
 
21.05.13
14:10
(19) Да не, судя по (17) это какая-то общая проблема, хотя я не наблюдал у себя такого. Пустые страницы были (при нехватке дочек), но не именно на яндекс.
Правда я давно на сквид 3.2 версию перешёл на всех серверах.

Вообщем, я бы попробовал обновить сквид до последнего, или на виртуалке опробовать, если живой сервер стрёмно трогать.

Как обновится на дебиане - не подскажу :(
21 Asmody
 
21.05.13
14:12
хм… а это нормально вообще?

[root@mh etc]# tracepath yandex.ru
1:  mx.telcogroup.ru (81.26.151.222)                       0.111ms pmtu 1500
1:  213.208.178.77 (213.208.178.77)                        2.351ms
2:  v322.xe100.atlant.naukanet.ru (81.26.144.161)        asymm  3   1.741ms
3:  no reply
4:  no reply
5:  no reply
6:  no reply
7:  no reply
8:  no reply
9:  no reply
10:  no reply
11:  no reply


[root@mh etc]# tracepath yandex.st
1:  mx.telcogroup.ru (81.26.151.222)                       0.133ms pmtu 1500
1:  213.208.178.77 (213.208.178.77)                        1.652ms
2:  v322.xe100.atlant.naukanet.ru (81.26.144.161)        asymm  3   1.740ms
3:  msk-ix-m9.yandex.net (193.232.244.93)                  2.757ms
4:  213.180.213.102 (213.180.213.102)                      3.704ms
5:  no reply
6:  no reply
7:  no reply
8:  static.yandex.net (93.158.134.215)                   asymm  7   3.047ms reached
    Resume: pmtu 1500 hops 8 back 7
22 Asmody
 
21.05.13
14:14
но Яндекс открывается при этом
23 Exec
 
21.05.13
14:49
(21)
попробуй:
traceroute -I yandex.ru
24 Exec
 
21.05.13
14:50
а, хотя вру :) он как раз по icmp закрыт, у меня та же картина
25 Asmody
 
21.05.13
14:51
бугага
[root@mh etc]# traceroute -I yandex.ru
traceroute to yandex.ru (87.250.250.11), 30 hops max, 40 byte packets
1  213.208.178.77 (213.208.178.77)  2.043 ms  2.027 ms  3.014 ms
2  v322.xe100.atlant.naukanet.ru (81.26.144.161)  1.991 ms  1.977 ms  1.976 ms
3  msk-ix-m9.yandex.net (193.232.244.93)  2.955 ms  2.959 ms *
4  l3-s2100-dante.yandex.net (87.250.239.13)  2.958 ms  2.958 ms  3.928 ms
5  mytp2-be6.yandex.net (213.180.213.13)  3.938 ms  4.914 ms  4.915 ms
6  s3500-966.yandex.net (87.250.239.85)  3.913 ms  2.960 ms  3.934 ms
7  yandex.ru (87.250.250.11)  2.932 ms  2.669 ms  3.606 ms
26 Ковычки
 
21.05.13
15:18
пока решение или директать в скрипте настроек прокси, либо с помощью ад или еще каких методов загонять яндекс в исключения ие
27 Ковычки
 
21.05.13
18:06
Вышел из положения костылем
url_rewrite_program /opt/gosoft/squid/bin/xrewrite


#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

pattern="yandex.ru/clck"

while read url client user method urlgroup; do
       xurl="${url}"
       [ "${method}" = "GET" ] && echo "${url}" | grep -q -m1 "${pattern}" && {
               xurl=`wget -S "${url}" -O /dev/null 2>&1 | grep -m1 "^[\t ]*Location:[\t ]*http://" | sed 's/^[\t ]*Location:
[\t ]*//'`
               [ -z "${xurl}" ] xurl="${url}" || xurl="302:${xurl}"
       }
       echo "${xurl}"
done
28 Asmody
 
21.05.13
18:08
(27) а как оно со сквидгвардом сочетаться будет?
29 Ковычки
 
21.05.13
18:09
(28) в (27) это урлреврайт для сквида


первая строчка в конфиг, далее скрипт
30 Ковычки
 
21.05.13
18:10
конечно костыль и если много клиентов будет форкать много
31 Ковычки
 
21.05.13
18:11
/opt/gosoft/squid/bin/xrewrite - это сам скрипт для сквида
32 Ковычки
 
21.05.13
18:12
завтра проверю работу, но это всеж таки костыль, завтра сделают они опять какую ни будь байду хз что будет
33 Asmody
 
21.05.13
18:13
(29) я понимаю, но у нас через url_rewrite работает squigGuard.
34 Ковычки
 
21.05.13
18:18
в скрипте косяки )
35 Ковычки
 
21.05.13
18:19
(33) добавить его в скрипт
36 Ковычки
 
21.05.13
21:07
поменял пока перл, на шеле буферизация, да и форкается вгет, но переделаю обратно на шел после.

#!/usr/bin/perl -w

use strict;
use warnings;

require LWP::UserAgent;

my $ua = LWP::UserAgent->new(requests_redirectable => []);
$ua->timeout(10);
#$ua->env_proxy;
$ua->max_redirect(0);

open(my $log, ">>", "/tmp/xrewrite.txt") || die("Cannot open output file: $!");
select $log;   $| = 1;
select STDOUT; $| = 1;
my $pattern="http://yandex.ru/clck/redir/";
my $res;

while (<>)
{
       my @x = split;
       my $url = $x[0];
       my $method = $x[3];
       if ( ( $method =~ /GET/ ) && ( $url =~ /^$pattern/ ) )
       {
               $res = $ua->get($url);
               if ($res->is_redirect)
               {
                       my $xurl = $res->header( 'Location' );
                       $url = "302:$xurl";
                       my $now = localtime;
                       print $log "$now: $url\n";
               }
       }
       print "$url\n";
}
37 Ковычки
 
22.05.13
14:52
день отработало на перловом костыле, немного измененном


#!/usr/bin/perl -w

use strict;
use warnings;
require LWP::UserAgent;

my $ua = LWP::UserAgent->new(requests_redirectable => []);
$ua->timeout(15);
#$ua->env_proxy;
$ua->no_proxy( 'yandex.ru' );
$ua->max_redirect(0);

open ( my $log, ">>", "/tmp/xrewrite.txt" ) || die("Cannot open output file: $!");
select $log;   $| = 1;
select STDOUT; $| = 1;
my $pattern = "http://yandex.ru/clck/redir/";
my ( $res, $url, @x, $method, $xurl, $now);

while (<>)
{
       @x = split;
       my $url = $x[0];
       $method = $x[3];
       if ( ( $method =~ /GET/ ) && ( $url =~ /^$pattern/ ) )
       {
               $res = $ua->get($url);
               if ($res->is_redirect)
               {
                       $xurl = $res->header( 'Location' );
                       if ( ! ( $xurl =~ /^\s*$/ ) )
                       {
                               $url = "302:$xurl";
                               $now = localtime;
                               print $log "$now: $url\n";
                       }
               }
       }
       print "$url\n";
}
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.