Несколько копий 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