Настройка режика с встроенным в squid http сервером

Обсуждение программы редиректора
Ответить
Phanthom
Сообщения: 8
Зарегистрирован: Пн мар 23, 2009 15:49

Настройка режика с встроенным в squid http сервером

Сообщение Phanthom »

Поднимать свой апач только для того чтобы выложить на него страницу запрета и один гиф рисунок очень не хотелось. Да и при попытке (после обнаружения этой проблемы) страницы грузились ацки медленно. Хотелось бы доработать этот вариант.
Из настроек - стоит сквид 3 stable 13 настроенный на прокси провайдера (в squid.conf добавлено следующее:
cache_peer proxy.sky.ru parent 3128 0 no-query
prefer_direct off)
ipfw направляет всех на сквид (настроен transparent на 3128 порту)

fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any http out via rl0
(rl0 - внешняя сетёвка)
а всё остальное идёт через нат
divert natd ip from any to any via rl0
Большинство сайтов открываются нормально, баннеры с е1 режет шикарно, с подменой проблем нет. НО, собсно суть проблемы:
при открытии некоторых страниц например izvestia.ru вместо баннеров отображаются ошибки следующего содержания:
ERROR
The requested URL could not be retrieved

While trying to process the request:
GET /squid-internal-static/icons/1x1.gif HTTP/1.0
User-Agent: Opera/9.51 (Windows NT 5.1; U; ru)
Host: 192.168.0.1:3128
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://izvestia.ru/
Cookie: guid=36CE060648A960AAX1219059882
Cookie2: $Version=1
Pragma: no-cache
Via: 1.1 FreeGate.OFFICE (squid/3.0.STABLE13)
X-Forwarded-For: 192.168.0.24
Cache-Control: no-cache, max-age=259200
Proxy-Connection: keep-alive


The following error was encountered:
Invalid Request

Some aspect of the HTTP Request is invalid. Possible problems:
Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed

Your cache administrator is postmaster@sky.ru.
Generated Mon, 23 Mar 2009 11:51:55 GMT by proxy.sky.ru (squid/2.6.STABLE9)

Какие есть мысли на этот счёт?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Вы пытаетесь загрузить /squid-internal-static/icons/1x1.gif с прокси провайдера?

Phanthom
Сообщения: 8
Зарегистрирован: Пн мар 23, 2009 15:49

Сообщение Phanthom »

А не подскажете правило, а то у меня это "первый контакт" с squid и rejik :? :oops:

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Попробуйте cache_peer_access и always_direct

Phanthom
Сообщения: 8
Зарегистрирован: Пн мар 23, 2009 15:49

Сообщение Phanthom »

немного не понял...
Не могли бы вы подсказать всю строчку если не трудно?
Я так понимаю что режик подменяет ссылку на баннер строчкой
http://192.168.0.1:3128/squid-internal- ... ns/1x1.gif
а мой сквид пытается эту строчку через себя пропустить и кидает запрос на эту картинку родительскому сквиду?
Т.о. мне наверно надо добавить правило чтобы всё что сыплется на 3128 порт пропускалось?
Что то типа ipfw add 8 allow tcp from 192.168.0.0/24 to 192.168.0.1,3128
или нет?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Сообщение Slava »

Строчку целиком не могу - не знаю.
Думаю, что нужно настроить сквид так, что бы за страницами замены он не ходил к провайдеру, за что, по идее, должные отвечать две приведенные мной опции.

Можно сделать проще, выложить файлы для замены на каком нить бесплатном хостинге в инете и указать их. Сквид их все равно закеширует, так обращений в инет должно быть не много.

Phanthom
Сообщения: 8
Зарегистрирован: Пн мар 23, 2009 15:49

Сообщение Phanthom »

Решил гораздо проще.
Добавил в сквиде ацл который напрямую просит всё что запрашивается с определённого ип. Т.о. запрос на картинку не пересылается родительскому кэшу а идёт напрямую на локальный вебсервер и всё работает шикарно.
Я думаю надо добавить строчку в фак
squid.conf
acl название_правила dst ip_squid
always_direct allow local

У меня получилось что то типа:
acl local dst 192.168.0.1
always_direct allow local
и /usr/local/etc/rc.d/squid restart
всё.

Ответить