Соб­ствен­но бы­ла по­став­ле­на пере­до мной та­кая за­да­ча - ор­га­ни­зо­вать proxy server c до­сту­пом по схе­ме - ПО кли­ен­та каж­дые 5 ми­нут от­прав­ляет http get запрос к скрип­ту, ко­то­рый дол­жен до­бав­лять IP кли­ен­та в БД и да­вать ему до­ступ к прок­си на сле­ду­ю­щие 5 ми­нут. За­чем это - объ­яс­нять дол­го, сам факт ре­а­ли­за­ции со­дер­жал не­ко­то­рые труд­но­сти. Пер­вое разо­ча­ро­ва­ние ме­ня постиг­ло, когда я узнал, что squid-овские acl src, ко­то­рые на­зна­ча­ют­ся из файла, кэ­ши­ру­ют­ся при стар­те скви­да, а зна­чит лег­кий ва­ри­ант с chmod файла со списком IP пра­ва­ми 0777 и обыч­ным fwrite с a+ не про­хо­дит... Обид­но.При­шлось из­вра­щать­ся, и ре­а­ли­зо­вы­вать все пра­вой ле­вой пят­кой.Соб­ствен­но вот что по­лу­чи­лось:
  • squid.conf + mkdir /etc/my_proxy/ + touch allowed.txt + chmod 0777 allowed.txt
  • да­лее - связь кли­ент-сер­вер в ви­де php скрип­та
  • да­лее ки­да­ем в /usr/bin/ дан­ный файл и не за­бы­ва­ем chmod +x
  • да­лее, раз­бе­рем­ся с sudo при­ве­ле­ги­я­ми: по­сред­ством visudo до­бав­ляем стро­ку nobody ALL = NOPASSWD: /usr/bin/squid_reconfigure , где nobody у ме­ня - юзер, под ко­то­рым жи­вет апач.
Вот соб­ствен­но и все, до­бав­ляем в крон что-то ти­па*/5 * * * * links -dump http://*****.*****.com/?action=cronСес­сия ини­ци­а­ли­зи­ру­ет­ся GET-ом на ?action=new, пин­гу­ет­ся ?action=ping и пре­кра­ща­ет­ся по ?action=terminate.Ми­нус дан­но­го ме­то­да: если у вас большой кон­фиг скви­да, то на squid -k reconfigure мо­жет уй­ти при­лич­но вре­ме­ни, как про­цес­сор­но­го, так и че­ло­ве­че­ско­го =)