понедельник, 10 января 2011 г.

Устанавливаем кеширующий веб прокси polipo

Установил polipo, попробую кратко рассказать как это делается.












Устанавливаем сам пакет:
opkg update
opkg install polipo

создаем минимальный конфиг файл для polipo:
vi /opt/etc/polipo/config
если такой файл уже был, удаляем его

вставляем в наш файл
proxyAddress = 192.168.1.1
proxyPort = 3128
allowedClients = 127.0.0.1, 192.168.1.0/24
chunkHighMark = 819200
objectHighMark = 128
diskCacheRoot = /opt/tmp/cache/polipo/
diskCacheTruncateTime = 5d
diskCacheUnlinkTime =15d
diskCacheTruncateSize = 128 MB
dnsQueryIPv6 = no
dnsUseGethostbyname = true
dnsMaxTimeout = 3
disableServersList = false
disableLocalInterface = false
diskCacheWriteoutOnClose = 32768
maxDiskEntries = 1024
disableIndexing = false
maxConnectionRequests = 512
maxDiskCacheEntrySize = -1
daemonise = true


и сохраняем его

создаем директорию под кеш
mkdir -p /opt/tmp/cache/polipo/
и под встроенный веб сервер
mkdir -p /opt/www/polipo/

удаляем если есть файл  /opt/etc/init.d/polipo
и создаем скрипт запуска polipo при загрузке системы
vi  /opt/etc/init.d/S70polipo
вставляем в него
#!/bin/sh

source /mnt/root/.profile

BIN=polipo
RUN_D=/var/run
PID_F=$RUN_D/$BIN.pid
CONF=/opt/etc/polipo/config

COND=$1
[ $# -eq 0 ] && COND="start"

case $COND in
stop)
  echo "Stopping $BIN... "
  killall polipo
  ;;
start)
  echo "Starting $BIN... "
  mkdir -p $RUN_D
  $BIN -c $CONF
  ;;
cache)
  echo "$BIN caching...! "
  $BIN -c $CONF -x
  ;;
restart)
  echo "Restart $BIN... "
  echo "Stopping $BIN... "
  killall polipo
  echo "$BIN caching...! "
  $BIN -c $CONF -x
  echo "Starting $BIN... "
  $BIN -c $CONF
  ;;
*)
  echo "Usage: $0 (start|stop|restart|cache)"
  exit 1
esac

сохраняем, делаем его исполняемым
chmod a+x /opt/etc/init.d/S70polipo

проверяем как оно работает
 /opt/etc/init.d/S70polipo start
после этого в браузере настраиваем следующие параметры прокси:
адрес - 192.168.1.1
порт - 3128
пробуем как открываются после этого страницы, можем так же зайти на встроенную страничку статистики polipo, которая находится тут - http://192.168.1.1:3128/polipo/

ЗЫ:  polipo не умеет сам удалять устаревшие данные из кеша, поэтому ему придется немного помочь:
 добавив вот такую строчку в crontab (crontab -e)
0 3 * * *  /opt/etc/init.d/S70polipo restart
мы будем перезапускать прокси и чистить его  кеш  от устаревших записей ежедневно в три часа утра

2 комментария: