Strona 1 z 1

apache mod_proxy - czasami coś działa

: 05 lipca 2010, 12:09
autor: mattai
Mamy serwer:

Kod: Zaznacz cały

 [URL]http://localhost[/URL]

Dokumentacja mówi:
ProxyPass /foo http://foo.example.com/
ProxyPassReverse /foo http://foo.example.com/
Jak się pracuje na tym samym poziomie to jest w porządku. Jak np. spiszę sobie

Kod: Zaznacz cały

[URL]http://localhost/foo[/URL]
wszystko działa, ale jak wpiszę:

Kod: Zaznacz cały

[URL]http://localhost/foo/poczta[/URL]
to np.: squirellmail częściowo załapie, ale większość aplikacji ma problem bo linki, które są zwracane nie mają przedrostka /foo i wszystko się krzaczy albo nie ma np grafiki. Jak to rozwiązać w konfiguracji proxy? Przepisując to tak chyba nie do końca, bo trzeba by definiować masę regułek.
Ćwiczyłem:

Kod: Zaznacz cały

ProxyPass /foo [URL]http://foo.example.com/[/URL] 
ProxyPass /img [URL]http://foo.example.com/img[/URL] 
ProxyPassReverse /foo [URL]http://foo.example.com/[/URL]

Ale to nie jest żadne rozwiązanie.

A praktyczniejsze by było jakieś permanentne przekierowanie nazwy domenowej. Albo to nie będzie działać jak ja chcę, albo czegoś nie rozumiem.

: 05 lipca 2010, 12:59
autor: lessmian2
Zacznij od początku i napisz dokładnie co chcesz zrobić.

: 05 lipca 2010, 13:03
autor: mattai
Jest sobie jakaś nakładka, który ma mi proxować zawartość z 5 serwerów z sieci wewnętrznej

Kod: Zaznacz cały

wan->ruter cisco-> serwer www/prox -> maszyny wewnątrz sieci
Chodzi o to aby był jeden adres i mieć jeden certyfikat do tunelowania tego.
Chciałbym mieć zrobione:

Kod: Zaznacz cały

[URL]http://frontend/1serwer[/URL]

Kod: Zaznacz cały

[URL]http://frontend/2serwer[/URL]
itd.
mod_proxy przekierowuje zawartość na zewnątrz ale chciałbym mieć przekierowaną całą zawartość z np. serwer1 aby kodu tam nie ruszać. Mam wśród źródeł np. squirellmaila i ten działa częściowo, po opróżnieniu kosz się sypie (../src/left_main.php). Zrobiłbym to ale wolę jakieś odgórne rozwiązanie, które pozwoli uniknąć innych problemów z oprogramowaniem.
Jak dostaję ,,index'' to nie ma w linku:

Kod: Zaznacz cały

[URL]http://frontend/serwer1/img/xxx.jpg[/URL]
tylko jest:

Kod: Zaznacz cały

 [URL]http://frontend/img/xxx.jpg[/URL]
i obrazki nie wyświetlają się. Słowem brakuje tego przedrostka ,,serwer1'' aby wszystkie linki się zgadzały. Problem jest również jak chcę wejść głębiej w podkatalogi, aplikacje marudzą, że brakuje przedrostka ,,serwer1''.
Nie mam pomysłu jak inaczej to zrobić?

Nie mogę do końca odczytać informacji o opcjach mod_proxy, może któraś opcja tam pozwala na takie bezwarunkowe wymuszenie.

: 06 lipca 2010, 12:34
autor: Pacek
Ja coś takiego kiedyś robiłem. Z tego co pamiętam samo mod_proxy nie wystarcza. Potrzebne jest jeszcze mod_proxy_html, które w locie w źródłach HTML zmienia adresy URL. W załączniku przedstawiam dokument, który bardzo dawno temu zrobiłem i z tego co pamiętam to funkcjonował. Niestety nie jestem w stanie powiedzieć czy wraz ze zmianami wersji Apache'a ta konfiguracja nadąża. Jeżeli uda się Wam to poprawić zgodnie z obecnymi wersjami (bo wiem, że np Apache ma inaczej ponazywane moduły) to będą wdzięczny ;) mam nadzieję, że konfig się przyda. Wybaczcie, że w PDFie, ale nie chce mi się wklejać wszystkiego po kolei.