Возникла проблема со сквидом.
При работе с определенными скриптами происходит следующая ситуация:
человек отправляет удаленному серверу запрос через веб-сайт методом POST. Браузер подвисает на некоторое время и затем выводится страница, что сквид оборвал соединение.
squid.conf:
Код:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 22 # hz
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1024-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 143 # pochta
acl CONNECT method CONNECT
acl office_network src 10.0.0.0/24
icp_access allow all
miss_access allow all
http_port 10.0.0.200:3128
hierarchy_stoplist cgi-bin ?
tcp_outgoing_address 80.*.*.*
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_mem 20 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
#cache_store_log /var/log/squid/store.log
cache_store_log none
request_header_max_size 64 KB
request_body_max_size 0 KB
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
prefer_direct on
forwarded_for off
acl apache rep_header Server ^Apache
acl denided_sites dstdomain "/etc/squid/sites/badsites.acl"
acl domall dstdom_regex "/etc/squid/sites/baddomains"
acl media urlpath_regex -i "/etc/squid/sites/files.acl"
acl web dstdom_regex -i "/etc/squid/sites/d.acl"
acl yu src 10.0.0.71-10.0.0.86
http_access allow yu denided_sites
http_access allow yu domall
http_access allow yu media
http_reply_access deny media !yu
http_access deny all denided_sites
http_access deny all domall
http_access deny manager
no_cache deny web
http_access allow office_network
http_access allow office_network web
http_access allow localhost
http_access allow manager localhost
broken_vary_encoding allow apache
ie_refresh off
visible_hostname rout3r
error_directory /usr/share/squid/errors/Russian-1251
deny_info http://site.ru denided_sites
я думаю может дело в request_body_max_size, но не уверен..
ЗЫ Это происходит как в ие, так и в опере или фаере.
Забыл также добавить, что сквид работает почти отлично, кроме вот этого момента...
"Тот, у кого хватит храбрости и терпения всю жизнь вглядываться во мрак, первым увидит проблеск света"
This specifies the maximum size for an HTTP request body.
In other words, the maximum size of a PUT/POST request.
A user who attempts to send a request with a body larger
than this limit receives an "Invalid Request" error message.
If you set this parameter to a zero (the default), there will
be no limit imposed.
Эта опция указывает максимальный размер reply body (объекта в ответ запросу) в байтах. Это может использоваться чтобы запретить пользователей которые загружают очень большие файлы, такие как mp3 и фильмы. Когда заголовок ответа получен, строка reply_body_max_size обрабатывается, и первая строка с результатом "allow" (разрешить) используется as the maximum body size для этого ответа. Этот размер проверяется дважды. Первый раз когда мы получим ответные заголовки, мы проверим значение content-length. Если значение content length существует и больше чем разрешенный размер, запрос блокируется и пользователь получает сообщение об ошибке который говорит "the request or reply is too large." Если нет content-length, и ответ: файл превышает это лимит, соединение клиентов будет закрыто и они примут неполный ответ.
Внимание: downstream (наверное расположенные ниже вашего прокси сервера) кэши возможно не определяют неполные ответы если не существует content-length header, также они кэшируют неполные отклики и выдают их в out как совпадения. Вы не должны использовать эту опцию если вы имеете downstream кэши.
Если вы установите этот параметр к нулю (по-умолчанию), не будет накладываться ограничение.
TAG: request_body_max_size (KB)
Этот тэг указывает максимальный размер для HTTP запрашиваемого объекта. Другими словами, максимальный размер запроса PUT/POST. Пользователь который делает попытки к отправке запроса с объектом больше чем этот лимит получит сообщение об ошибке "Invalid Request". Если вы приведете этот параметр к нулю (по умолчанию), не будет накладываться ограничение.
Примеры:
reply_body_max_size 20000000 allow nolimit
запретить объекты больше 20000000 байт группе (правилу) nolimit
reply_body_max_size 5242880 allow all
запретить объекты до 5242880 байт (5 МБ) группе all
request_body_max_size 5 MB
запретить PUT/POST (методы передачи) для 5 Мб
прошерсти порты tcpdump'ом,а также посмотри на реакцию сквида через strace ( strace -f -o имя_файла -vvv выполняемая _команда ( chroot /dir/ /dir/file например)) команда позволяет направить весь вывод в указываемый файл - в файле по словам error - и прочим выяснишь на что-ругается либо клиентский браузер либо сквид)
проверь urlpath_regex , но это самое последнее на что он может ругаться
"Смерть одного человека-трагедия,смерть миллионов-статистика."
И.В.Сталин
Пробовали разные браузеры, разные ПК? У меня было похожее, у 1-2 юзеров, сейчас уже не помню как именно решили проблему, но затык был в клиентских браузерах. Причем конкретно при отсылке письма через веб интерфейс, при нажатии кнопочку сенд браузер также задумывался, а потом выводил еррор. Кстати, попробуйте выпустить эту же машину в инет допустим через НАТ, проверьте....может и не в проксе дело.
А если в обход этого сквида изнутри вашей попробовать - тоже ошибка? Просто тут есть мнение что такие вещи могут быть из-за проблем на стороне провайдера....или из-за самого удаленного хоста.
Если ошибка не будет наблюдатся при работе в обход прокси, то, попробуйте поотрубать все запреты, запуститесь с минимальной конфигурацией и посмотрите.
Indarien спасибо за неравнодушие, начинаю потихоньку доганять. Засада где-то в недрах iptables. Хотя с теми-же правилами без squida всё работает на ура. Выясню отпишусь.
"Я просто пытаюсь растить свой сад и не портить прекрасный вид.
И начальник заставы поймёт меня и беспечный рыбак простит" Б.Г.
Indarien спасибо за неравнодушие, начинаю потихоньку доганять. Засада где-то в недрах iptables. Хотя с теми-же правилами без squida всё работает на ура. Выясню отпишусь.
Так раз без скида с тем же набором правил все воркает то почему думаете что проблема именно в iptables?