Portál AbcLinuxu, 7. května 2025 09:46

Dotaz: Apache2 + podstrčení stránek

31.3.2011 11:17 Krabák | skóre: 3
Apache2 + podstrčení stránek
Přečteno: 560×
Odpovědět | Admin
Dobrý den všem,

na Debianu mi běží Apache2 se spoustou firemních aplikací a potřeboval bych udělat následující věc:

Mám webovou aplikaci na cizím serveru, která je dostupná jen na jednom PC, kde zároveň běží i můj Apache (je to natvrdo nastavený na routerech, jiné PC na server s tou aplikací přístup nemají). A potřebuju, aby když uživatel zadá např.: http://MUJserver/aplikace, tak aby mu to podstrčilo obsah na http://CIZIserver/aplikace. Ale tak, aby o tom uživatel vůbec nevěděl a v prohlížeči mu zůstala ta původní adresa. Tozn., že nechci žádný redirect.

Takže potřebuji, aby se tam Apache připojil a ten obsah poslal tomu klientovi. Současně s tím, by také měl přepsat všechny odkazy ve stránce, aby neukazovaly na ten cizí, ale na ten můj server (mám na mysli jen ten základ adresy, čiže jen prosté nahrazení).

Zkoušel jsem mod_rewrite i mod_proxy, ale to nedělalo to, co jsem chtěl. Prostě to poslalo 302 Moved pernamently a uživatele to přesměrovalo. A to je přesně to, co nechci. Uživatel nesmí nic poznat :-)

Šlo by to nějak zařídit? Díky moc za jakoukoliv radu :-)


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.3.2011 12:22 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Použijte mod_proxy (pro získání obsahu stránky a přeposlání uživateli) a k tomu mod_filter nebo mod_ext_filter (pro úpravu obsahu).
31.3.2011 13:54 Sten
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je potřeba mod_rewrite říct, že to má poslat přes proxy a ne přesměrováním, parametrem P.
31.3.2011 14:24 Krabák | skóre: 3
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Asi jsem lama, ale nepodařilo se mi to. Mohl by mi to někdo nějak zkráceně napsat ? :-)
Luboš Doležel (Doli) avatar 31.3.2011 14:39 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Já zase používám parametry ProxyPass a ProxyPassReverse. Více v dokumentaci Apache.
31.3.2011 15:35 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek

No já to řeším takto, používám mod_proxy a mod_proxy_html

<IfModule mod_proxy.c>
  ProxyRequests On
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  <IfModule mod_proxy_html.c>
    ProxyPreserveHost On
    SetOutputFilter proxy-html
    ProxyHTMLURLMap __DOMENA__.dyndns-ip.com __DOMENA__.cz Ril
  </IfModule>
  ProxyPass / http://__DOMENA__.dyndns-ip.com/
  ProxyPassReverse / http://__DOMENA__.dyndns-ip.com/
</IfModule>
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
31.3.2011 16:23 Krabák | skóre: 3
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Aha, no to už mi funguje, díky :-) Ale je tu jeden problém. Mám to takhle:
 <Directory /hdi/>
  ProxyPass  http://app.local/webapp/
  ProxyPassReverse http://app.local/webapp/
 </Directory>

Tím jsem konečně docílil toho, že se klientovi po zadání http://mujserver/hdi/ objeví obsah na http://app.local/webapp/. Řekněme, že existuje soubor http://app.local/webapp/stranka.php. Takže bych ještě potřeboval dořešit odkazy. Ony se jsou v prohlížeči ve tvaru http://mujServer/webApp/stranka.php, ale já bych potřeboval, aby tam byly jako http://mujServer/hdi/stranka.php. (Protože adresář webapp u mě není, ten je pouze na vzdáleném serveru.

Věděl by někdo? :-)

Řešení 1× (Krabák (tazatel))
31.3.2011 18:17 Krabák | skóre: 3
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Všem se omlouvám za svojí tupost :-) Už jsem to vyřešil - celou dobu jsem to dělal blbě :-) Díky moc:-)
31.3.2011 14:44 Thomas123 | skóre: 15
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek

Pokud vím, tak je několik jednoduchých řešení, za předpokladu, že ta aplikace používá relativní cesty v odkazech. Pokud používá něco natvrdo, tak následující řššení nebudou fungovat.

1.) Mělo by stačit nastavit Alias ve virtualhostu - http://httpd.apache.org/docs/current/mod/mod_alias.html
(netestováno, ale mohlo by chodit)

2.) Mod_rewrite a něco ve smyslu:

RewriteEngine On
RewriteRule ^(.*)$ http://bablablabla.cz/$1 [L,QSA,NE]
31.3.2011 15:17 Krabák | skóre: 3
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
No, přesně to jsem zkoušel (ted jsem vyzkoušel i to vaše), jenže ono to "nepodstrčí obsah", ale pošle 301 Moved Permanently a prohlížeč se přesměruje. A to je přesně to, co já nechci :-(
31.3.2011 17:59 Thomas123 | skóre: 15
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek

Ano, zkuste příspěvek níže, chybí tam P pro připojení skrz Proxy

31.3.2011 15:48 Sten
Rozbalit Rozbalit vše Re: Apache2 + podstrčení stránek
Osobně mám vyzkoušené tohle, že funguje:
RewriteRule ^(.*)$ http://bablablabla.cz$1 [L,P]

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.