Üdvözlet Mindenkinek!
Szeretnék beállítani a címben szereplő software segítségével egy Reverse Proxy-t oly módon, hogy egy VirtualHost gyökérkönyvtárától kezdve minden kérést átirányítson az adott szerverre de úgy, hogy néhány könyvtárat figyelmen kívül (exclude) hagyjon. Azt tudom, hogy a dolog megoldható lenne simán a ProxyPass-al, de nem szeretnék két sort használni oda, ahol egy jól megfogalmazott szabály is elég. Van valakinek ötlete, hogyan lehetne megírni ezt a - ha minden igaz Negative Lookahead - RegEx kifejezést működőre?
Köszönöm a segítséget!
- 3799 megtekintés
Hozzászólások
RewriteRule a barátod.
- A hozzászóláshoz be kell jelentkezni
A kérdést ez ugyan tényleg megoldja, ám a RewriteRule nem tesz lehetővé finomhangolást magában a Proxy működésében (mondjuk a sebesség terén).
- A hozzászóláshoz be kell jelentkezni
Ezt mondjuk nem is értem...
- A hozzászóláshoz be kell jelentkezni
ProxyPass /example http://test.example.hu connectiontimeout=5 timeout=30
- A hozzászóláshoz be kell jelentkezni
Jogos, ezt nem vettem észre. Azonban találtam valamelyik Apache doksiban olyat, hogy bizonyos dolgokat nem lehet úgy megcsinálni, mint a Proxy-val. Egy ideje már keresem, mi is volt az, de nem találom.
- A hozzászóláshoz be kell jelentkezni
Idáig ez állításként OK, 1 könyvtárra: ^/?dir1/(.*)$
Ezt kellene negálni plusz több könyvtárat is kizárni.
- A hozzászóláshoz be kell jelentkezni
H(UP)!
- A hozzászóláshoz be kell jelentkezni
Nem értem, hogy miért mániád ez a negálás...
Ez egy létező szerver konfigjából lett kiollózva/anonimizálva:
ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
SetEnvIf Remote_Addr ^200\.201\.202\.203$ enable-portalcons
RewriteEngine on
RewriteRule ^/$ http://domain.com/login [R,L]
RewriteRule ^/forbidden\.html$ - [L]
RewriteRule ^/notfound\.html$ - [L]
RewriteCond %{ENV:enable-portalcons} !.
RewriteRule ^/console.*$ - [F]
RewriteRule ^/(.*)$ http://domain.com/$1 [P]
ProxyPassReverse / http://domain.com/
- A hozzászóláshoz be kell jelentkezni
Ez a két sor kiválóan megoldja a Reverse Proxy-t, de minek a két sor feleslegesen?
ProxyPass /uploads !
ProxyPass / http://localhost:8080/
- A hozzászóláshoz be kell jelentkezni
Nem sokkal tisztabb es atlathatobb ha kulon adod meg a kiveteleket ha mar tamogatja, mintsem egy regexp-el probalnad definialni amit nehezebb is osszerakni meg kesobb boviteni es ertelmezni?
Mi ertelme van annak, hogy egy soros konfigkent probalod beallitani? Gyorsabb lesz tole, jobban tamogatott az a megoldas, ha masnak kell hozzanyulni akkor jo esellyel konnyebben tud banni azzal, kevesebb szivas lesz vele kesobb ha frissiteni kell a rendszert vagy milyen ertelmes ervet tudsz felhozni mellette?
- A hozzászóláshoz be kell jelentkezni
Általában Én is így látnám, de most nem. Bővíteni annyi lesz, hogy:
(Dir1) -> (Dir1|Dir2) -> (Dir1|Dir2|Dir3)
- A hozzászóláshoz be kell jelentkezni
Jellemzően inkább a technika kihasználása lenne most a cél - ha már tudja - nem más. Szeretem megfogni a dolgokat onnan, ahonnan Google-ben sem találok semmi értelmeset. Ha fontos szempontot is említeni megfelelő számú kivétel felsorolása helyett 1 RegEx biztosan gyorsabb futásidőt is eredményez.
- A hozzászóláshoz be kell jelentkezni