Reverse proxy

Sziasztok!

Van egy kis problemam, nem tudom van-e ra megoldas. Adott egy rendszer ahol csak egy fqdn erheto el https-en keresztul a kulvilag felol. Pl https://web.valami.hu. A problema az, hogy most bovult a rendszer egy application szerverrel, amit ugy-e proxiznom kellene a web.valami.hu-rol. Megprobaltam mar az apache 1.3 es 2.2 proxy illetve rewrite moduljaval, squid-al valamint a sun webserver reverse proxyjaval is. Eddig nem jartam sikerrel, nagyon lesarkitva ezt kellene megoldanom:

https://web.valami.hu/web -> http://192.168.1.20/ (web server)
https://web.valami.hu/appl -> http://192.168.1.30:8080/ (application server)

Elore is koszi,
bzg

Hozzászólások

Hali!

Regebben csinaltam ilyet, a kovetkezo fajlt linkeltem be a sites-enabled-be (a peldadat irom le)

<VirtualHost *:80>
ServerName web.valami.hu
ServerAlias web.valami.hu
RewriteEngine On

RewriteRule ^/web/(.*)$ http://192.168.1.20/$1 [L,P]
RewriteRule ^/appl/(.*)$ http://192.168.1.30:8080/$1 [L,P]

ProxyVia on

</VirtualHost>

ServerName es ServerAlias nelkul is mukodik.
Minden jot.

Hmm, bocsanak a ProxyVia On nem volt benne az en konfigomban, most valtoztattam az alapjan amit irtal. Most annyi valtozott, hogy a bongeszoben atirja az url-t is arra amire az atiranyitas tortenik, tehat a http://192.168.1.30:8080 -ra, ami kivulrol ugy-e nem lathato :(

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --

Meg megneznem, hogy a proxy modulok be vannak-e toltve. Debian alatt:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

Aztan, ha az [L,P] a rewrite sorok vegen stimmel, akkor elkezdenek vadul debuggolni... :)

Ez van a conf-ban:
IfModule rewrite_module
RewriteEngine On
RewriteLog /tmp/rewrite.log
RewriteLogLevel 9
RewriteRule ^/appl(.*)$ http://192.168.1.30:8080/$1 [L,P]
ProxyVia On
/IfModule

A logban pedig:
172.16.1.81 - - [16/Apr/2009:11:59:27 +0200] [172.16.1.171/sid#81706f8][rid#8356f18/initial] (2) init rewrite engine with requested uri /appl
172.16.1.81 - - [16/Apr/2009:11:59:27 +0200] [172.16.1.171/sid#81706f8][rid#8356f18/initial] (3) applying pattern '^/appl(.*)$' to uri '/appl'
172.16.1.81 - - [16/Apr/2009:11:59:27 +0200] [172.16.1.171/sid#81706f8][rid#8356f18/initial] (2) rewrite '/appl' -> 'http://192.168.1.30:8080/'
172.16.1.81 - - [16/Apr/2009:11:59:27 +0200] [172.16.1.171/sid#81706f8][rid#8356f18/initial] (2) forcing proxy-throughput with http://192.168.1.30:8080/
172.16.1.81 - - [16/Apr/2009:11:59:27 +0200] [172.16.1.171/sid#81706f8][rid#8356f18/initial] (1) go-ahead with proxy request proxy:http://192.168.1.30:8080/

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --

access.log-ban vagy error.log-ban van valami erdekes?

RewriteRule ^/appl(.*)$ http://192.168.1.30:8080/$1 [L,P]
helyett

RewriteRule ^/appl/(.*)$ http://192.168.1.30:8080/$1 [L,P]
vagy
RewriteRule ^/appl(.*)$ http://192.168.1.30:8080$1 [L,P]

Csak, hogy a /-ek szama jo legyen...

Proxy modulok jol betoltodnek?

esteleg nem rewrite, hanem mod_proxy (ha már proxizni kell :), és:

ProxyPass /web/ http://192.168.1.20/
ProxyPassReverse /web/ http://192.168.1.20/
ProxyPass /appl/ http://192.168.1.30:8080/
ProxyPassReverse /appl/ http://192.168.1.30:8080/

vagy vmi ilyesmi :)
----------------------------
"Még jó, hogy nem szeretem a finomfőzeléket. Mert ha szeretném, meg kellene ennem. Pedig nem szeretem."

A végeredményben ugyan az lehet, de maga a feladat - egy HTTPS szerverre érkező kéréseket transzparensen, észrevétlenül, egy az egyben szétdobálni két HTTP szerverre - egyértelműen reverse proxy funkciót igényel, mindenféle egyéb varázslás nélkül.
Erre tisztábbnak tűnik mod_proxy-t használni, mint rewrite szabályokat írni.

Persze hozzáteszem, h 2.2 alatt van csak némi tapasztalatom ez irányban, 1.3-at nem ismerem.

(Nem tudom, h mi a pontos hiba annál amit javasoltam, de a / jelek megléte vagy hiánya egy tipikus hiba szokott lenni. Én is belefutottam párszor... :)

----------------------------
"Még jó, hogy nem szeretem a finomfőzeléket. Mert ha szeretném, meg kellene ennem. Pedig nem szeretem."

termeszetesen nginx-el


server {
listen 80;
server_name some-server.com www.server-name.com;
access_log logs/host.access.log main;
# Main location
location /cgi-bin/nagios2/ {
proxy_pass http://inagios:80/cgi-bin/nagios2/;
proxy_redirect default;
}

location /nagios2/ {
proxy_pass http://inagios:80/nagios2/;
proxy_redirect default ;
}

location /nagios/ {
proxy_pass http://inagios:80/nagios2/;
proxy_redirect default ;
}
}

--
.