Subject: FreeBSD Webserv Date: Thu, 11 Dec 2003 19:25:56 +0100 From: "Martin S. Andersen" <none@karto--inleadmedia.com.lh.bsd-dk.dk> To: <none@bsd-dk--bsd-dk.dk.lh.bsd-dk.dk>
Hejsa alle sammen,
Jeg skal til at lave et nyt server setup til vores web hosting, med load balancing og failover.
Lige nu har vi ca. 50-60 sites, som vi styre 100 %, og ca. 12 mill. hits pr. md.
Vi har også en del web applikationer, der ikke kan håndtere at bruge en replikeret MySQL database, da slave serverne ikke bliver opdateret med det samme efter en UPDATE / INSERT.
Udover dette, så bruger applikationerne også PHP sessions, hvilket gør at en klient / browser ikke må "hoppe" fra server til server, når den load balancer.
Setuppet skal helst være så skalerbart, at vi på et tidspunkt skal kunne klare 100 gange så mange hits. Dvs. 1.2 milliard hits pr. md. Så skal der bare nogle flere og bedre servere til.
Jeg håber der er nogen af jer der har lidt erfaring med lignende setups, og der har lyst til at hjælpe mig med at få det fedeste og bedste setup.
Budgettet til dette setup ligger på omkring 3 - 400t kr., og serverne skal købes hos IBM.
Indtil videre ser setuppet sådan her ud, i mit hoved:
Router
|
+--+--+
BF1 BF2
+--+--+
NS2 MX2 |
| | |
NS1 | MX1 | | LB1 LB2
| | | | | | |
--+--+--+--+-------+----+-+--+------+--+--+--+--+---- Eth1 (213.xxx.xxx.128/26)
| | | | | | | | |
| MR | MON LOG BAK Web1 Web2 Web3
MS SPAM | | | | | |
+----+----+------+--+--+--+--+--- Eth2 (192.168.1.0/24)
| |
DB1 DB2
* Web hosting servere
BF = Bridge med firewall og IDS
LB = Load Balancer
WEB = Apache webserver
DB = MySQL database server
* Administrations servere
MON = Monitoring server (Nagios, rrtools osv.)
LOG = Syslog server
BAK = Backup server
* Diverse servere
NS = Name server
MX = Mail server
MS = Cyrus Mail store (imap / pop3)
MR = Mail relay for all the servers
SPAM = Spam / virus filter server
* Eth1
100 mbit med offentlige ip-adresser. Alle serverne sidder på dette netværk.
* Eth2
1 gbit privat net, med private ip-adresser. Bruges til dataoverførsel mellem serverne. Ikke forbundet til det offentlige net.
* Bridge med firewall
Jeg har allerede en Linux box der gør netop dette, og det virker ganske fint. Jeg ved ikke om i har nogle erfaringer med andre systemet til dette?
Indtil videre så tror jeg det bliver en Linux med ebtables patchen til bridge firewall og snort til IDS
System: Linux, ebtables, snort, fake, heartbeat
* Load Balancer
For at kunne opfylde kravet med at en klient bruger samme server under hele hans session, ser det ud til at jeg bliver nødt til at bruge Linux'es LVS (http://www.linuxvirtualserver.org/) som load balancer, da jeg ikke kan finde noget med samme mulighed til FreeBSD (jeg har kigget på http://siag.nu/pen/ og på http://www.bsdshell.net/hut_loadd.html). Udover det så er der også nogle flere fordele i LVS.
System: Linux, LVS, mon, fake, heartbeat
* Webserver
Hidtil har jeg brugt Linux til dette, men jeg tror jeg vil over og køre FreeBSD, da jeg mange steder har hørt, at den er bedre og hurtigere.
Så det bilver en FreeBSD med Apache. Derudover regner jeg med at køre thttpd på sin egen ip på hver server, og så lade load balanceren styre begge. Til sidste, så mangler jeg bare et fault-tolerant distribueret fil system, der har en lokal cache, så den automatisk synkronisere filerne på serverne, og stadig hente eksisterende filer fra harddisken. Har i et forslag til et fil system? Ellers må jeg nøjes med en rsync hver 10-20 min.
System: FreeBSD, Apache, thttpd
* Database server
Jeg har ikke hørt meget om FreeBSD som MySQL server. Men jeg går ud fra at det er det samme som med Apache, og regner derfor også med at bruge FreeBSD til den. Hvad siger i til den, er der nogen kommentar?
System: FreeBSD, MySQL
* De andre servere
De andre servere er lidt lige meget, det er ikke fordi nogen af dem får det vildeste load, og jeg regner egentlig med at køre mange af serverne i VMWare, eller lignende, på et par fysisk rigtige servere.
Mailserver bliver Postfix,
imap server bliver Cyrus
nameserver bliver Bind 9
Og så kommer der til at køre Nagios, rrtools, syslogd og rsync til backup.
I må gerne komme med forslag til hvilke servere der ville passe godt sammen, på samme fysiske server, igennem VMWare.
Jeg er ny til FreeBSD (har installeret den nogle gange, men det er aldrig blevet til noget), til gengæld har jeg arbejdet med Linux i 6 år, og ved hvordan den arbejder og skal administreres. Derfor håber jeg i vil være lidt venlige, og måske forklare lidt af de forskelle jeg kunne støde ind i.
Det gik lidt stærkt her tid sidst, men jeg håber i forstår hvad det er jeg vil, og i er villige til at hjælpe mig med at finde den bedste løsning.
Med venlig hilsen / Best regards
Martin Karto Andersen
Partner, Software Engineer & Sys Admin
karto@inleadmedia.com <none@mailto:karto--inleadmedia.com.lh.bsd-dk.dk>
Direct: +45 35 25 99 05
Mobile: +45 40 82 80 68
InleadMedia ApS
Sortedam Dossering 81 * DK-2100 Copenhagen
Tel.: +45 7020 1220 * Fax: +45 7020 1231
info@inleadmedia.com <none@mailto:info--inleadmedia.com.lh.bsd-dk.dk> * www.inleadmedia.com <http://www.inleadmedia.com/>
EasySite - Content Management System
www.easysite.org <http://www.easysite.org/>
This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:34 CET