squid als reverse proxy / squid_plugin.inc.php - wie aktivieren?

isol

New Member
Hallo, wir bauen gerade unsere neuen Systeme mit ipsconfig 3 auf und würden gerne den squid als reverse proxy einsetzen. Wenn ich das richtig sehe, gibt es dafür bereits ein plugin, das genau das macht, was wir wollen (domainliste usw.), es liegt in modules_available, aber was muss man tun, um es zu nutzen (außer einen link nach modules_enabled setzen)? Ich habe dazu leider nichts gefunden.

Danke für einen Tip,
Jakob
 

Till

Administrator
Hallo,

das Plugin muss an sich nur durch einen symlink in plugons-enabled aktiviert werden. Ob es aber in der aktuellen Version funktioniert kann ich nicht sagen da es derzeit keinen maintainer hat und auch seit längerem nicht getestet wurde, wir haben es nur als legacy plugin im source Baum gelassen.

Wenn Ihr apache bschleunigen wollt, würde ich eher zu varnish raten, den kann man ohne die Notwendigkeit eines zusätzlichen Plugins vor den apache schalten. es muss lediglich das apache vhost mater template und das apache_ispconfig.conf template angepasst werden.
 

isol

New Member
Naja, von der squid-Seite her könnte ich das sicher maintainen, da kenn ich mich aus. Das ist auch der Grund warum ich nicht einfach umsteigen will, mit squid haben wir weine menge erfahrung. Ich habe aber das Gefühl, irgendwas muss da schon noch passieren, ich sehe jedenfalls keine erzeugten Dateien in /etc/squid/ . (Das Plugin ist wie beschrieben mit Symlink aktiviert und ich habe eine neue Website angelegt).

Müsste nicht die Funktion proxy_reverse_insert oder web_domain_insert von irgendwoanders aus aufgerufen werden? Anders gefragt: wie "funktioniert" ein plugin in ipsconfig3?

Grüße Jakob
 

Till

Administrator
Plugins sind eventbasiert. das plugin subscribed sich selbst für bestimmte events und die Funktionen werden dann automatisch aufgerufen, wenn dieser event eintritt.

im Falle dieses Plugins werden dei Funktionen aufgerufen wenn man eine webseite einfügt, updated oder löscht. siehe code:

Code:
$app->plugins->registerEvent('web_domain_insert', $this->plugin_name, 'insert');
		$app->plugins->registerEvent('web_domain_update', $this->plugin_name, 'update');
		$app->plugins->registerEvent('web_domain_delete', $this->plugin_name, 'delete');
 

isol

New Member
Irgendwas geht da aber schief:

19.06.2014-16:58 - DEBUG - Unable to register function 'insert' from plugin 'squid_plugin' for event 'proxy_reverse_insert'
19.06.2014-16:58 - DEBUG - Unable to register function 'update' from plugin 'squid_plugin' for event 'proxy_reverse_update'
19.06.2014-16:58 - DEBUG - Unable to register function 'delete' from plugin 'squid_plugin' for event 'proxy_reverse_delete'

wie kann ich da mehr herausfinden?
 

isol

New Member
Es sieht so aus als gäbe es die Funktion "'proxy_reverse_*" nicht (mehr)? Die werden auch in dem nginx plugin verwendet.
 

Till

Administrator
Das ist ok, die verwendeten events sind die, die ich gepostet habe. die zeilen welche diese warnings verursachen werden nicht mehr verwendet, Du kannst die also ignorieren oder die zeilen im plugin auskommentieren.

Das Problem scheint zu sein dass es keine squidRewriteRules.py.master Datei in /usr/local/ispconfig/server/conf/ gibt, habe auch mal in älteren versionen von ispconfig nachgesehen, die scheint es nie gegeben zu haben. der Ursprüngliche Autor des Plugins schient sie nicht mit committed zu haben. das ist die Vorlagendatei die als /etc/squid/squidRewriteRules.py geschrieben wird.
 

isol

New Member
I see. Ich glaube das Problem war dass er ein vorhandenes Skript aus dem Zope-Umfeld verwendet hat, und das war copyrighted. Eigentlich ist das aber glaube ich overkill... nur weiß ich jetzt auch nicht wie das reverse caching überhaupt gehandhabt wurde. Ich vermute mal dass man einfach den apache auf einem abweichenden Port betreibt und die Requests dann "portmäßig" umschreibt !? Dann ist das auch mit squid recht einfach, da muss man keine komplizierten rewrite-engines einsetzen. Ich werde mal versuchen, das plugin etwas anzupassen.
 

isol

New Member
So, ich habe ein template für eine domains.txt erstellt und das funktioniert an sich wunderbar; leider ist jedoch in dem squid plugin die SQL-Abfrage so gestellt, dass jeder beliebige DNS-Eintrag der betreffenden Zone einen reverse proxy verpasst bekommt. Schoener und ressourcenschonender wäre es, wenn nur die beim Webserver eingetragene Domain, ggfls. mit Subdomains, jeweils einen reverse proxy Eintrag bekommt. Ich kenne mich aber mit der Tabellenstruktur von IPSConfig nicht so aus; kann mir jemand sagen, wie eine entsprechende Abfrage aussehen müsste?
 

Werbung

Top