webForumDet fria alternativet

Hur gör jag för att få ett IP att gå till flera servrar?

Webbservrar

11 svar · 1 066 visningar · startad av erciz

Medlem sedan maj 20011 826 inlägg
Frågan#1

Jag tänkte sätta upp en feltolerant webbtjänst, dvs en tjänst utan single-point-of-failure. Hur gör jag för att ha två servrar som använder samma IP utåt, så att jag kan få feltolerans?

Medlem sedan dec. 20014 239 inlägg
#2

Ett ip till fler maskiner? Då är det ett Network Load Balancing Cluster du söker.
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp

Medlem sedan okt. 2003108 inlägg
#3

Kolla även upp nginx för lastbalansering.

Medlem sedan maj 20011 826 inlägg
#4

Bjuufaren skrev:

Kolla även upp nginx för lastbalansering.

Mm, Nginx är en bra webserver, som även kan användas som en proxy. Men det var inte riktigt det jag var ute efter här. Jag vill nämligen ha en IP-adress att gå till två datorer utan en single-point-of-failure.

Medlem sedan dec. 20003 563 inlägg
#5

Virtuella (alias) nätverksinterface som är styrda av ex heart?

Medlem sedan maj 20011 826 inlägg
#6

Zaiman skrev:

Ett ip till fler maskiner? Då är det ett Network Load Balancing Cluster du söker.
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp

Det såg ut att vara en intressant artikel, skummade igenom texten ibörjan, ska ta mig tid att läsa hela så småningom. Men jag förstog inte riktigt hur det fungerade. En virtuell IP-adress som används av flera datorer verkar vara rätt väg. Men hur fungerar det om en dator går ner? ...skickas bara trafiken till de servrar som är uppe?

Medlem sedan maj 20011 826 inlägg
#7

cyprys skrev:

Virtuella (alias) nätverksinterface som är styrda av ex heart?

Ja, nåt sånt låter som det jag är ute efter. Finns det? Hur sätter jag upp en sån virtuell IP publikt på nätet?

Har en liten känsla av att jag måste ha nåt specialavtal med någon ISP för att få detta?

Medlem sedan dec. 20003 563 inlägg
#8

Nja, en switch och två burkar/nätverksinterface duger bra.

1. Koppla switchen mot internet och skapa ett VLAN som kan innehålla minst 4 IP.
2. Koppla in två burkar (s1,s2) på fysiska interfacen 192.168.0.1, 192.168.0.2 (ip1, ip2).
3. Skapa alias vip1 på s1 (ifconfig eth0:vip1 192.168.0.3 up)
4. Skapa alias vip2 på s2 (ifconfig eth0:vip2 192.168.0.4 up)

Så, nu har du två fysiska och två virtuella interface (ip1,vip1,ip2,vip2).
s1: ip1, vip1
s2: ip2, vip2

Trixet härifrån är att när tjänsten på s1 går ner, ska s2 automatiskt binda vip1. Och när s1 går upp igen ska s1 ta tillbaka vip1.
s1: ip1
s2, ip2, vip2, vip1

Så hur får s2 reda på att s1 går ner? Genom ex heart eller någon annan metod. Här finns det säkert många färdiga produkter, ofta baserade på heart, som gör just den här monitoreringen.

Om du tycker den ensamma switchen är en SPOF, och inte redan har dina servrar ståendes i en webbhall med redudanta switchar för ditt VLAN, då kanske det behövs något snack med din ISP. Men den delen har jag noll koll på.

Medlem sedan juni 20014 290 inlägg
#9

Vilket i princip är vad NLB är, se Zaiman inlägg.

Medlem sedan dec. 20003 563 inlägg
#10

GunnarD skrev:

Vilket i princip är vad NLB är, se Zaiman inlägg.

Jo visserligen, men ville hjälpa lite med frågorna:

Men jag förstog inte riktigt hur det fungerade. ...
Men hur fungerar det om en dator går ner? ...
Finns det? Hur sätter jag upp en sån virtuell IP publikt på nätet?

red: Eller ser nu att du kanske riktade inlägget till ericz. Sorry. :)

Medlem sedan aug. 20022 027 inlägg
#11

OpenBSD med CARP och relayd borde fixa det du efterfrågar också.

Medlem sedan feb. 200112 078 inlägg
#12

Windows NLB på 2003+ löser load balance, ipbindningar och heart-beat, men inte automatisk failover. Det använder man Clustering Services till. NLB är dock bara medveten om hosten är "levande" eller inte. Om t.ex. en av dina NLB-klustrade webbservrar börjar spruta ur sig 500.100 internal server errors så kommer NLB skita högaktningsfullt i det, såvida inte hosten döms ut som "unresponsive" (ur ett heart-beat-perspektiv).

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)