[ me-tuzalem @ 08.07.2010. 08:24 ] @
Kratak opis situacije:
- imam komp (A) u LANu na kojem je instaliran apache i sve mi vec dvije godine radi kako treba.
- tom serveru se iz spoljnog svijeta pristupa preko fiksne IP adrese npr. http://1.2.3.4/
- sada zelim da na drugom kompu (B) u LANu podignem jos jedan Apache na kome bih hostovao samo neke aplikacije
- kompu B nemam pristup iz spoljnog svijeta;
- hteo bih da iz spoljnog svijeta i dalje serveru A pristupam preko http://1.2.3.4/ , a da serveru B pristupam preko http://1.2.3.4/serverb/
- drugi server ima LAN adresu 192.168.100.20


Pretpostavljam da je dovoljno da u httpd.conf na serveru A postavim Rewrite rules koji bi mi zahtjeve
http://1.2.3.4/serverb/nesto/index.php
pretvarao u
http://192.168.100.20/nesto/index.php,
ali ne znam kako.


Moze li me neko pomoci?
[ igor.vitorac @ 08.07.2010. 08:45 ] @
Za tako nesto ti treba mod_proxy u apache-u. Pogledaj ProxyPass, ProxyPassReverse i ProxtRequests.

Ja bi ti preporucio i jos dodatno koriscenje virtual host-a, ako zelis da pristupas serveru B kao serverB.domain.com umesto serverA.domain.com/serverB/
Evo primera..

<VirtualHost *:80>
ProxyRequests Off
ProxyPass / http://serverB_lan/
ProxyPassReverse / http://serverB_lan/
ServerAdmin [email protected]
ServerName serverB.example.com

ErrorLog logs/serverB-error_log
CustomLog logs/serverB-access_log common
</VirtualHost>

Da bi ti radio i virtual host B, trebao bi da stavis i DNS record za serverB.example.com da bude ista IP adresa kao i serverA u public DNS zoni.

Obrati paznju da onda i za postojeci deo apache-a napravis virtualhost sekciju.

[ nkrgovic @ 08.07.2010. 08:48 ] @
Treba ti proxy, koji ce da kroz sebe vuce saobracaj izmedju privatne i javne mreze. Pogledaj mod_proxy da li to moze (trebalo bi), imas uputstvo za njega, a laksi je za konfiguraciju od mod_rewrite.
[ me-tuzalem @ 08.07.2010. 09:26 ] @
Hvala na trudu, ali moj glavni problem je (ili ga ja tako vidim) sto iz spoljnog svijeta ne pristupam preko nekidomen.com vec iskljucivo preko fiskne adrese! I to tako mora da ostane!
Zato i mislim da mi je rewrite jedino resenje.
Tenutno pokusavam da to odradim preko .htaccess u serverb folderu na http://1.2.3.4/serverb ali mi nesto ne uspijeva.
[ Jbyn4e @ 08.07.2010. 09:49 ] @
Preko mod rewrite pogledaj P flag u uputstvu za rewriterule. U svakom slucaju to opet radi preko mod_proxy.

Lepo su ti rekli ljudi sta treba da koristis, a ako bas zelis preko mod_rewrite I mod_proxy, onda moras preko gorepomenutog P flag-a za RewriteRule direktivu.
[ igor.vitorac @ 08.07.2010. 09:52 ] @
Citat:
me-tuzalem: Hvala na trudu, ali moj glavni problem je (ili ga ja tako vidim) sto iz spoljnog svijeta ne pristupam preko nekidomen.com vec iskljucivo preko fiskne adrese! I to tako mora da ostane!
Zato i mislim da mi je rewrite jedino resenje.
Tenutno pokusavam da to odradim preko .htaccess u serverb folderu na http://1.2.3.4/serverb ali mi nesto ne uspijeva.


Onda koristi samo mod_proxy.
[ me-tuzalem @ 09.07.2010. 08:56 ] @
OK, prihvatam da je mod_proxy pravi nacin.
A, sad, moze li iko da mi kaze sta da stavim u httpd.conf, a sta u .htaccess?
[ Jbyn4e @ 09.07.2010. 11:29 ] @
A sta si dosad probao da stavis? Kopiraj linije.
[ me-tuzalem @ 09.07.2010. 12:46 ] @
Rijesio sam!
Dok sam cekao gotov odgovor, malo sam ceprkao i ovo mi radi u prvim testovima.

Code:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$   http://192.168.100.20/$1  [P]


Na serveruA sam ispod www napravio folder serverb i u njemu .htaccess sa gornjim kodom.
Kada iz spoljnog svijeta zovem http://1.2.3.4 radi mi kao i do sada. Kada zovem http://1.2.3.4/serverb pravila u .htaccess fajlu mi preusmere request ka kompu koji mi u LANu ima IP adresu 192.168.100.20.

Trik je u onom [P] sto je i pomenuo Jbyn4e.
Hvala svima na trudu.
[ vladared @ 09.07.2010. 15:04 ] @
Neće ti radi jer će ti preusmeriti bilo koji računar na tvoju lokalnu adresu, a to spolja neće moći da se razreši. Rešenje ti je već pomenuti mod proxy i to tipa:

Code:

ProxyRequest on
Proxy Via On

<Location /proba/>
ProxyPass http://192.168.1.1/nesto/
ProxyPassReverse http://192.168.1.1/nesto/
ProxyHTMLURLMap http://192.168.1.1/nesto/ http:/www.sajta.com/proba/
ProxyHTMLURLMap / /proba/
SetOutputFilter proxy-html
RequestHeader unset Accept-Encoding
[ Jbyn4e @ 09.07.2010. 16:23 ] @
^^

Vlado... pomenuti [P] to i radi... kao sto sam mu i rekao, samo ne zna da cita :)

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
Citat:

'proxy|P' (force proxy)
This flag forces the substitution part to be internally sent as a proxy request and immediately (rewrite processing stops here) put through the proxy module. You must make sure that the substitution string is a valid URI (typically starting with http://hostname) which can be handled by the Apache proxy module. If not, you will get an error from the proxy module. Use this flag to achieve a more powerful implementation of the ProxyPass directive, to map remote content into the namespace of the local server.

Note: mod_proxy must be enabled in order to use this flag.


[ vladared @ 10.07.2010. 08:51 ] @

Šta ćeš, ja stara škola, pa volem da komlikujem... Tek sada sam skontao tvoj post, ali i ovaj zadnji da je njemu proradilo. [P] u modu rewrite jeste oznaka za proxy, ali ja navikao ovako..