[squid] meerdere back-end webservers.

Pagina: 1
Acties:
  • 109 views sinds 30-01-2008
  • Reageer

  • Theodoor
  • Registratie: Juni 1999
  • Laatst online: 17-03 10:50
Hier heb ik een netwerk met o.a. een firewall/reverse-proxy met squid en nog twee webservers op de ip-nummers 192.168.2.2 en 192.168.2.3.
Hieronder is een plaatje van de situatie:
Afbeeldingslocatie: http://www.gotheo.org/tweakers/reverse_proxy.gif

Mijn vraag is nu hoe kan ik squid nu zo configureren dat _beide_ webservers vanaf het internet toegangelijk zijn? Ik kan namelijk maar één keer de httpd_accel_host optie gebruiken. Moet ik dan maar meerdere squids compileren en meerdere squid-daemons gaan draaien?

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
In geval van meerdere domeinen:
Gewoon er voor zorgen dat squid beide servers via dns te weten kan komen. (het private ip dus) Je moet dan dus wel een dns server hebben die intern wat anders verteld dan extern. (Bind 9 kan dit erg goed)

In geval van loadbalancing:
Ook een split dns, en dan gewoon round-robin

  • Theodoor
  • Registratie: Juni 1999
  • Laatst online: 17-03 10:50
Het gaat niet om load balancing, maar om veiligheid. Via DNS is geen oplossing, want ik moet squid laten weten dat er twee _verschillende_ webservers achter zijn kont hangen en dat dus "internet IP-adres 1" van de proxy-server naar 192.168.2.2 gaat en dat "internet IP-adres 2" van de proxy-server (IP-aliassing!) naar 192.168.2.3 moet. Ik wil dit niet via eenvoudige portforwards doen, maar via squid want dat is veiliger.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Ok, in dat geval moet je een split dns hebben, of /etc/hosts gebruiken op de squid machine. (squid 2.3 leest niet de hosts file!)

Laat de domeinen naar de squid machine wijzen, en zorg ervoor dat squid via /etc/hosts de interne ip's krijgt.

(Met bind 9 kan je het ook doen, maar das wat ingewikkelder, en alleen nodig indien je firewall ook de dns is voor dat domein)

  • Theodoor
  • Registratie: Juni 1999
  • Laatst online: 17-03 10:50
Maar wat moet ik dan precies in die /etc/hosts zetten? De domeinnamen? En wat moet ik dan in squid.conf zetten?

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Stel je hebt www.domeina.nl en www.domeinb.nl en je public ip is 1.2.3.4

Op 1.2.3.4 draait een squid op poort 80. Laat www.domeina.nl en www.domeinb.nl naar 1.2.3.4 wijzen.

Stel in de /etc/hosts van 1.2.3.4 in:
192.168.0.1 www.domeina.nl
192.168.0.2 www.domeinb.nl

Zet squid in http-accel mode, en zorg er met de acls voor dat de hele wereld die domeinen kan bekijken.

Wat gebeurt er nu als squid een http request voor www.domeina.nl doet: Hoe doet een lookup voor het ip; ondekt via de /etc/hosts dat dat op 192.168.0.1 is; hij zal de info van 192.168.0.1 ophalen en naar de aanvrager sturen.

  • Theodoor
  • Registratie: Juni 1999
  • Laatst online: 17-03 10:50
Maar wat moet ik dan opgeven bij httpd_accel_host? Moet dat gewoon httpd_accel_host virtual zijn?

PS: Ik heb nu gewoon twee squid-daemons gecompileerd en aan het draaien (het werkt wel!) als erg brute noodoplossing.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Staat toch wel erg duidelijk in de uitleg in de squid.conf:

Zo heb ik het staan.
code:
1
2
httpd_accel_host virtual
httpd_accel_port 80
Pagina: 1