Sziasztok!
Van egy cég, fix IP címmel, két különböző aldomain mutat rá.
Az internetet router osztja a belső hálózat felé, ezen belső háló egyik gépe futtat egy Apache-ot, a routeren a 80-as port erre van átirányítva, működik is szépen. bekerült viszont egy másik gép is, szintén LAN-os címmel, szintén Apache2-t futtat.
Az lenne a cél, hogy ha az egyik aldomain-t hívjuk meg, akkor az egyik, ha a másikat, akkor a másik gép Apache-a kapja meg a kérést és lehetőleg ne kelljen portokkal bíbelődni az URL-ben.
Úgy gondoltam, hogy mivel a 80-as port továbbítás fix helyre mutat, az azon futó Apache döntse el, mi volt a kérés, ha nem neki szólt, hanem a másik aldomain számára, akkor továbbítsa a másik, belső IP címmel rendelkező gép felé. Nem tudom, hogy ez megoldható-e vagy sem, illetve milyen egyéb megoldások jutnak még eszetekbe? Nyilván ehhez az elsődleges Apache gépnek mindig mennie kell, hogy továbbíthassa a kérést, de ez nem gond.
Felmerült még bennem egy másik megoldás is, miszerint a második Apache documentroot-ját felmountolom valahogy az elsődleges apache-os gépre és így oldom meg ezt. Szerintetek ez hülyeség? Vagy eleve ezt hogyan oldanátok meg?
Lényeg az, hogy a két gép két gép kell, hogy maradjon, portokkal nem akarok játszani, mint pl. akarmi.domain.hu:81, mert annyira nem szép így.
Azaz ha aldomain1.domain.hu-t írok be, akkor az egyik, míg ha aldomain2.domain.hu-t adok be, akkor a másik gép szolgálja ki a http kérést.
Betenném ide a most meglevő Apache2 konfot is, bár semmi extrém nincs benne, de a relációjelek közé tett VirtualHost, Directory, stb. dolgok nem jelennek meg, kiszűri a fórummotor.
Várnék minden javaslatot!
Köszi:
Mono
Hozzászólások
Például apache proxyzással megoldható. Ha jól emlékszem mod_proxy modul kell hozzá.
jaja, proxy. HAsznalhatod apache mod_proxyjat, de hasznalhatsz mas proxyt is (squid, varnish stb)
Ha jol ertettem az elkepzelesedet, a felmountolos megoldas azert nem jo, mert attol meg, hogy a masodik gepen vannak fizikailag a fileok, attol meg az elso webszerver fogja kiszolgalni a kereseket (a masodik pedig tetlen lesz vegig.)
Ez pedig a halozati kesleltetes miatt lassabb kiszolgalast fog eredmenyezni, valamint a terheles-eloszlas sem ugy alakul, ahogy azt szeretned.
Megoldódott!
Nagyon köszönöm mindenkinek a segítségét!
A "B" verzió már majdnem működött, mikor elkezdtem azon agyalni, hogy egyáltalán életképes-e az ötlet? Hiszen ha felmountolom a másik Apache www könyvtárát, attól még annak SQL adatbázisába nem feltétlen fog irogatni egy PHP-s program - szerintem legalábbis.
Így futottam még pár kört, sőt, ezen a fórumon találtam egy topikot, amely alapján aztán össze is jött a dolog, íme:
http://hup.hu/node/47654
Molti adta meg a lényegi dolgot, bár én csak egy-egy "szekciót" használtam belőle, saját magát nem proxyztattam meg, de a hozzászólása:
Ezt megelőzően még:
apt-get install libapache2-mod-proxy-html
a2enmod proxy
a2enmod proxy_http
Majd:
/etc/init.d/apache2 restart
És ment is minden. Gondoltam megírom az utókor számára, hátha valakinek még szüksége lesz erre (vagy később nekem, ha már elfelejtem, hogy' kell csinálni :p :) )
Köszi. Ez már engem is érdekelt, csak még nem keresgéltem utána a kivitelezésének.
Na van újabb "gondom" vele :)
Szóval picit többet árulok el, nem azért, mert titkoltam volna, hanem mert nem akartam sok felesleges dolgot (eddig) leírni.
Gondjaim a logolással vannak.
A proxy mögött ülő Apache futtat egy web-es FTP klienset, illetve az alatt van egy FTP szerver. Logolás eléggé fontos lenne ezen a gépen, ki mikor lépett be http felületen (sima FTP is van, azt logolom szépen), mit csinált, hova lépett, stb.
Viszont minden log bejegyzésben a proxy-s gép IP címe látszik, az eredeti IP "nem megy át" a proxy-n. Lehet ezzel kezdeni valamit?
A proxy-s gép IP-je 192.168.5.248, log a proxy mögött levő FTP-s gépen:
Látsztik, hogy belépett a WEB-es felületre, könyvtárat váltott, viszont csak az látszik, hogy a belső hálózaton levő, proxy-s géptől jöttek ezek a kérések. Nekem az kellene, hogy valójában honnan jött a kérés, a proxy elől?
Tudtok erről valamit? Így lenne kerek ez a történet, de sajna nem lelek rá megoldást :(
Előre is köszi:
Mono
Szia !
Én anno ezzel csináltam: mod_proxy_add_forward
Üdv,
N.
Ööö, ez valami forrásból forgatós, telepítős dolog? Nem nagyon lelek róla sokat :(
Hát pl ez: http://packages.debian.org/sid/httpd/libapache2-mod-rpaf
Üdv,
N.
Köszi!
Igen, az már jobban hangzik. Sajna azonban 4-es Etch van stabilan a gépen, nem akarok disztrót frissíteni a sok egyéb miatt, ezt viszont úgy látom nem találja meg még ezen csomagok között. :(
Ezt a két linket találtam a témában:
http://stderr.net/apache/rpaf/download/
http://people.debian.org.tw/~chihchun/debian/libapache-mod-rpaf/
Ezen a thread-en:
http://forums.debian.net/viewtopic.php?t=25136
Üdv,
N.
Köszi a linkeket!
Ez alapján fel is tettem az rpaf csomagot, viszont semmi változás :( Persze apache restart megvolt, előtte persze megvolt ez is:
# a2enmod rpaf
Ezt adja vissza: This module is already enabled!
Viszont semmi változás, a proxy mögött levő gép logjaiban csak a proxy-s gép IP címét látom :(
Valami tippetek van még esetleg?
Be is van konfigolva?
# if DSO load module first:
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 10.0.0.1
RPAFheader X-Forwarded-For
Továbbá a logformat-nál is be kell (sztm) állítani vmi ilyesmit:
LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
Üdv,
N.
Hát konfigolva nem volt, mert nem találtam erre semmit sehol.
Betettem az apache2.conf végére ezt:
# if DSO load module first:
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.5.190
RPAFheader X-Forwarded-For
Ahol az 5.190-es IP a proxy mögött levő apache-os gép.
A /etc/init.d/apache2 restart-ra ezt kaptam:
#/etc/init.d/apache2 restart
Forcing reload of web server (apache2)...[Tue Jul 14 10:22:05 2009] [warn] module rpaf_module is already loaded, skipping
waiting [Tue Jul 14 10:22:08 2009] [warn] module rpaf_module is already loaded, skipping
.
#
Proxy mögött levő gép logjaiban továbbra sem látszik, csak a proxys gép IP-je... :(
Hát mert a proxy mögött lévő gép apache logformatban nem állítottad be, hogy logolja az X-Forwarded-For mezőt.
Szerk: szerintem egyébként az rpaf modult is a proxy mögötti gépen kell beüzemelni.
Üdv,
N.
Hmm.....na megnézem.