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
- 1683 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
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 !!! --
- A hozzászóláshoz be kell jelentkezni
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... :)
- A hozzászóláshoz be kell jelentkezni
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 !!! --
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
A rewrite nem jo, mert http redirect-tel operal.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
Ezs mintha nem ugyanaz mint a rewrite? A doksi azt irja ez a regi (1.3-as) verzio, a rewrite ennek az advanced-ebb valtozata. De egyebkent ezt a verziot is probaltam, de nem sok eredmennyel.
-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --
- A hozzászóláshoz be kell jelentkezni
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."
- A hozzászóláshoz be kell jelentkezni
Baromira nem, a rewrite atiranyit, a proxy viszont ugy szolgal ki, mintha azt az url-t szolgalna ki, amit kertel.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Én is kíváncsi vagyok. :)
- A hozzászóláshoz be kell jelentkezni
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 ;
}
}
--
.
- A hozzászóláshoz be kell jelentkezni