Назад | Перейти на главную страницу

предотвращение цикла пересылки squid с помощью IPtables

У меня есть веб-приложение, и я хочу ограничить размер загружаемого файла.

Я подумал, что попробую использовать для этого squid через его директиву request_body_size_max.

Мой веб-сервер работает на порту 8080, и я установил squid 3.1.19 на том же сервере (Ubuntu 12.04 LTS). Сервер работает на Amazon EC2, если это имеет значение.

squid.conf содержит:

http_port 3128 transparent

Я добавил в IPTables:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 3128

Когда я захожу на веб-сервер, в журналах Squid отображаются следующие данные:

Forwarding loop detected.

Что мне нужно сделать, чтобы этого не произошло? Спасибо...

Проблема в том, что когда squid пытается подключиться к веб-серверу (через порт 8080), его запрос также перенаправляется самому себе. Вы должны ограничить область действия правила REDIRECT (например, на основе входящего интерфейса).

Если внешний интерфейс на вашем сервере - eth0, измените правило следующим образом:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

Обновить: По второй мысли похоже я ошибаюсь. Локальный (127.0.0.1) трафик не проходит через цепочку PREROUTING.

Как вы сказали squid, какой исходный веб-сервер использовать?