Несколько копий Squid на одной машине | Linux, Squid
Понадобилось запустить несколько экземпляров squid на одной машине – на одном интерфейсе с алиасом. Всё это на CentOS.
Сначала настраиваем алиас на CentOS.
Копируем скрипт настройки интерфейса:
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
Редактируем скопированный файл:
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=10.0.0.12
#GATEWAY=10.0.0.1
TYPE=Ethernet
IPV6INIT=no
Переименовываем имя интерфейса (eth0:0), комментируем GATEWAY.
Также комментируем GATEWAY в скрипте настройки интерфейса eth0 (/etc/sysconfig/network-scripts/ifcfg-eth0).
Прописываем шлюз для всех интерфейсов в файл /etc/sysconfig/network:
GATEWAY=10.0.0.1
Рестартуем сеть:
#service network restart
Теперь можно настраивать squid. Копируем конфиг сквида (создаём его копию для второго экземпляра squid):
#cp /etc/squid/squid.conf /etc/squid/squid2.conf
Создаём пид файл:
#touch /var/run/squid2.pid
Редактируем конфиги сквида – в /etc/squid/squid.conf меняем директиву порт:
http_port 10.0.0.10:3128
И расскомментируем путь к пид файлу (на всякий случай – по дефолту squid всё равно должен использовать его).
Теперь второй экземпляр squid. Редактируем /etc/squid/squid2.conf – пишем порт и айпи на котором слушаем и путь к пид файлу.
http_port 10.0.0.10:3128
pid_filename /var/run/squid2.pid
Теперь можно запускать копию сквида:
#/usr/sbin/squid -f /etc/squid/squid2.conf
Смотрим что у нас заапустилось:
#netstat -ntlp | grep squid
tcp 0 0 10.0.0.12:3128 0.0.0.0:* LISTEN 30852/(squid)
tcp 0 0 10.0.0.10:3128 0.0.0.0:* LISTEN 30220/(squid)
Видим два экземпляра.
Управляем вторым экземпляром указывая путь к конфиг файлу:
#/usr/sbin/squid -f /etc/squid/squid2.conf -k shutdown
Так убиваем процесс. Даём процессу умереть. Если сразу попытаемся запусить можем поймать ошибку:
/usr/sbin/squid -f /etc/squid/squid2.conf
2011/06/06 17:00:35| Squid is already running! Process ID 30321