У меня есть веб-приложение, и я хочу ограничить размер загружаемого файла.
Я подумал, что попробую использовать для этого 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, какой исходный веб-сервер использовать?