Arkiv för maj, 2010

Guide: Webbtrafikshantering med Pound & openSUSE

4 maj, 2010

Ny guide gällande webbtrafikshantering med Pound & openSUSE har anlänt.

Läs den här: Till Guide

Webbtrafikshantering med Pound & openSUSE

4 maj, 2010

InnehållGrön Linje


FörordGrön Linje

Pound är en omvänd proxy, lastbalanserare & HTTPS Front för webbservrar. Pound utvecklades för att möjliggöra lastbalansering mellan flera webbservrar och för att tillåta en lämplig SSL-wrapper för webbservrar som inte stödjer SSL som standard.

bullet_arrow_up_mUpp


InstallationGrön Linje

Denna guide förutsätter att en färdig installation av openSUSE finns, det finns en guide att läsa här för hur man installerar openSUSE. Givetvis så går det att ta större delen av denna guide och applicera på andra Linux distributioner.

Nu skall vi installera Pound.

  • Börja med att gå in i adminläge genom att skriva följande i konsolen.
    $ sudo -i
  • Skriv sedan följande för att ladda ner och installera Pound.
    # yast install pound

För att lägga till pound i startup kör följande kommando.
# yast runlevel add service=pound

När installationen är klar är det dags att gå vidare till konfigurationen.

bullet_arrow_up_mUpp


KonfigurationGrön Linje

Dags att sätta upp Pound för att hantera pekningar till våra webbservrar.

Som exempel så kommer vi att ha tre stycken servrar som levererar webbinnehåll, två av dessa skall lastbalanseras med varandra.

Vår miljö:

ps (192.168.0.2) – Vår Pound server.
web1 (192.168.0.5) – Webbserver som skall lastbalanseras.
web2 (192.168.0.6)- Webbserver som skall lastbalanseras.
mail (192.168.0.10) – E-Post server med webbgränssnitt.
www.example.se – Den adress som skall lastbalanseras.
mail.example.se – Mejlserverns webbgränssnitt nås ifrån denna adress.

  • Öppna upp /etc/pound.cfg.
    # nano /etc/pound.cfg
  • Ta bort allt utom följande rader.
    # Start pound as User with Group
    User  ”pound”
    Group ”pound”
  • Nu skall vi skapa en lyssnare(listener) som är den som kommer att hantera trafiken till och från våra servrar. Lyssnaren kommer att lyssna på 192.168.0.2 och på port 80. Fyll på med följande information i /etc/pound.cfg.
    ListenHTTP
    Address 192.168.0.2
    Port 80
    End
  • Nu skall vi lägga till våra servrar i konfigurationsfilen. Vi börjar med webb servrarna som skall lastbalanseras. Detta måste läggas in före End raden i lyssnaren.
    UrlGroup ”.*www.example.se.*”
    BackEnd 192.168.0.5,80,1
    BackEnd 192.168.0.6,80,2
    Session COOKIE auth 360
    EndGroup

Det vi har gjort här är att skapa en URL grupp där båda webb servrarna ingår med olika prioritetsordning, här med 1 & 2. Prioritetsordningen anges mellan 1-9 där 1 är lägst och 9 högst, dvs. i vårt fall så kommer servern med prioritetsordning 2 att få dubbelt så många anrop som servern med prioritetsordning 1.

UrlGroup: Det namn som skall lastbalanseras, hämtas ifrån det anrop som görs emot Pound servern. .* är ett så kallat reguljärt utryck som används vid strängsökning och måste finnas med.

BackEnd: Den/de servrar(192.168.0.x) som skall finnas med i lastbalanseringen, en server per BackEnd rad. Här anges även vilken port(80) samt vilken prioritetsordning(1,2) servern skall ha.

Session: Anger vilken typ av session som skall användas av Pound för att bibehålla anslutningsdata mellan specifika lastbalanserade servrar och klienten. Det finns IP, BASIC, URL, COOKIE, PARM & HEADER.

Då HTTP protokollet i sig är ett så kallat Anslutningslöst(Stateless) protokoll så innebär detta att när man gjort en förfrågan emot en server så har man ej längre kontakt med den och nästa gång man gör en ny förfrågan så skapas en ny anslutning med servern, detta är inget problem när man endast har en server som svarar på anrop, dock så blir detta ett problem när man kör med lastbalansering. Vid lastbalansering så vet man inte vilken server som svarar på det aktuella anropet och har man initierat en session emot den ena servern så kommer den sessionen mest troligt att avbrytas vid ett nytt anrop, beroende på vilken server som svarar. Detta går att komma runt med Session variabeln som vi angivit ovan, där har vi angivit att sessionstypen skall vara COOKIE som heter auth och att den skall vara giltig i 3600 sekunder, dvs 1h. Under denna timmen så kommer alla anrop ifrån en dator att hamna emot samma server.

  • Dags att lägga in mejlservern i /etc/pound.cfg också. Detta måste också läggas in före End raden i lyssnaren.
    Service
    HeadRequire ”Host: .*mail.example.se.*”
    BackEnd
    Address 192.168.0.10
    Port 80
    End
    End

Det vi gjort här är att skapa en service för mail.example.se där vi säger att när en klient begär denna adress så går Pound in och hämtar data för detta på adressen 192.168.0.10 via port 80 och skickar sedan detta tillbaka till klienten.

bullet_arrow_up_mUpp


ResurserGrön Linje

Vidare läsning om Pound kan göras på tillverkarens hemsida samt genom att läsa manualen för Pound.

Hemsida: www.apsis.ch

manualen når man även genom att skriva följande i konsolen:

# man pound

bullet_arrow_up_mUpp


SlutordGrön Linje

Pound är ett bra sätt att hantera/distribuera webbinnehåll via ett minimalt antal externa IP-Adresser, vilka man kanske vill hushålla med eller rent av så har man endast en att tillgå vilket gör det svårt att kunna hantera flera webbresurser utåt på ett vettigt sätt.

bullet_arrow_up_mUpp