Üdv!
Adott 2 vas, amely frontendként üzemel.
Mind a két gépen:
- 1 publikus ip cím,
- 1 beslő ip cím,
- heartbeat,
- haproxy,
- tomcat (3 webapp)
Közös:
- 1 db publikus ip cím
- 3 db domain (3 webapp)
A működés jelenleg:
Aktív gép:
- A "Közös" ip címet viseli (hearbeat), erre mutatnak a domainek és a haproxy a 80-as portra hallgat
- A webappok a 8080-as portot viselik, alapértelmezetten erre mutat a haproxy és a session mögé fűzi az aktív gép host nevét
- A tomcat be van állítva, hogy a passzív géppel clustert alkosson
- Háttérfolyamatokat futtat megosztva a passzív géppel
Passzív gép:
- A webappok a 8080-as portot viselik
- Kívülről nem elérhetőel a webappok
- Háttérfolyamatokat futtat megosztva az aktív géppel
- A tomcat be van állítva, hogy az aktív géppel clustert alkosson
Szeretnénk megoldani, hogy valamilyen load balancing legyen a két gép között, mivel már elég nagy a terhelés. Fontos, hogy a munkamenetek érvényesek legyenek mind a két gépen, tehát ne kelljen újra bejelentkezni. Akinek van ilyesmivel tapasztalata, ötlete az kérem ossza meg velem. Előre is köszi! (Később feldobom a jelenlegi konfigot.)
- 8486 megtekintés
Hozzászólások
subscribe
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
A haproxy tud terhelés elosztást és azt írtad, hogy "A tomcat be van állítva, hogy a passzív géppel clustert alkosson". Így ha kiesik az egyik gép akkor a felhasználó nem vesz észre semmit.
Egyébként rendes üzemmenet esetén a haproxy megjegyzi, hogy melyik klienst melyik szerverre irányította, ezért nem jelentkezik session probléma.
Szerk.
Itt találhatsz hasznps infót: http://haproxy.1wt.eu/download/1.2/doc/architecture.txt
--
maszili
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Bocsi, hogy csak most írok, de csak most jutottam el oda, hogy válaszoljak.
Ez a doksi sokat segített köszönöm! A roundrobin-t választottuk, működik is. Már csak annyit kellene megoldani, hogy a kliensek ip-címét továbbítsuk valamilyen úton módon, mivel van kivezetésünk, amelyet csak bizonyos ügyfelek láthatnak, és ip cím alapján van testreszabva. Ez egy rss kivezetés, amit egy speckó programmal látogatnak, viszont a program nem ismeri az auth-ot. (Próbáltuk rábeszélni őket a ms outlook-ra). Gondoltam már Iptables-re, viszont kellene a statisztikához a "látogató" ip címe, mert így csak localhostról érkeznek kérések a webappokba. A másik probléma, hogy néha mégsem jegyzi meg a session-t a haproxy, mivel néha előfordul, főleg ajax esetén, hogy elhasal a webapp session hiba miatt.
listen webfarm 192.168.1.1:80
mode http
balance roundrobin
cookie SERVERID insert indirect
option httpchk HEAD /index.action HTTP/1.0
server frontend-0 192.168.1.11:8080 cookie A check
server frontend-1 192.168.1.12:8080 cookie B check
- A hozzászóláshoz be kell jelentkezni
a megfejtés: x-forwarded-for
ebben a http fejlécben utazik a kliens ip miután átszálguldott a haproxy-n
- A hozzászóláshoz be kell jelentkezni
option forwardfor
http://code.google.com/p/haproxy-docs/wiki/forwardfor
Ezt meg inkább valahogy így probáld:
listen webfarm 192.168.1.1:80
mode http
balance roundrobin
cookie SERVERID insert indirect
option httpchk HEAD /index.action HTTP/1.0
option forwardfor
server frontend-0 192.168.1.11:8080 cookie A check inter 2000 rise 2 fall 2
server frontend-1 192.168.1.12:8080 cookie B check inter 2000 rise 2 fall 2
- A hozzászóláshoz be kell jelentkezni
Ha apache van mögötte a mod_rpaf ... és beállítod, hogy mire cserélje az ip-t ha "proxyzott" vagy "loadbanc-szolt" címről jön...
Én ezt a megoldást használom az OracleWebCache mögötti kiszolgálóknál.
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni
Az IP cím problémára ott a megoldás a dokumentumban amit linkeltem:
- if the application needs to log the original client's IP, use the
"forwardfor" option which will add an "X-Forwarded-For" header with the
original client's IP address. You must also use "httpclose" to ensure
that you will rewrite every requests and not only the first one of each
session :
option httpclose
option forwardfor
The web server will have to be configured to use this header instead.
For example, on apache, you can use LogFormat for this :
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b " combined
CustomLog /var/log/httpd/access_log combined
--
maszili
- A hozzászóláshoz be kell jelentkezni
+1
--
A legértékesebb idő a pillanat amelyben élsz.
http://phoenix-art.hanzo.hu/
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
ldirectord ?
- A hozzászóláshoz be kell jelentkezni
s
- A hozzászóláshoz be kell jelentkezni
vagy: haproxy helyett lehet squid is. roundrobin stb. ez is tudja.
sajna ipket nem tudja forwardolni, de lehet hogy nem is kell, mivel így egy szerveren egy fájlban meglesz minden log a valódi forrás ipkkel. Tehát a backend szervereken nem is kell logolni.(ipt.)
\o\ |o| /o/
- A hozzászóláshoz be kell jelentkezni