Puncte:0

Rute de proxy invers Apache cu o adresă URL parțială similară

drapel br

Am această configurare simplă de proxy invers în containerul meu docker (apache), fiecare mapat la un microserviciu diferit cu două containere docker diferite.

#serviceOne 
ProxyPass /abc/xyz/ http://serviceOne:8080/abc/xyz/ Keepalive=On
ProxyPassReverse /abc/xyz/ http://serviceOne:8080/abc/xyz/


#serviciu doi 
ProxyPass /abc/xyz/pqr/ http://servicetwo:8080/abc/xyz/pqr/ Keepalive=On
ProxyPassReverse /abc/xyz/pqr/ http://servicetwo:8080/abc/xyz/pqr/

Cu acest lucru în loc, nu pot ajunge la nicio rută relativă în al doilea serviciu, cum ar fi /abc/xyz/pqr/testprocess nu este accesibil, în timp ce funcționează corect atunci când este păstrată o singură rută proxy inversă.

Puncte:1
drapel br

Acest lucru a fost destul de evident și de fapt l-am putut obține în timp ce formulam această întrebare :)

în astfel de cazuri, ceea ce contează este ordinea în care sunt plasate aceste mapări.

#serviciu doi 
ProxyPass /abc/xyz/pqr/ http://servicetwo:8080/abc/xyz/pqr/ Keepalive=On
ProxyPassReverse /abc/xyz/pqr/ http://servicetwo:8080/abc/xyz/pqr/

#serviceOne 
ProxyPass /abc/xyz/ http://serviceOne:8080/abc/xyz/ Keepalive=On
ProxyPassReverse /abc/xyz/ http://serviceOne:8080/abc/xyz/

Doar schimbarea ordinii acestor două mapări a rezolvat problema.

Deși acest lucru era destul de evident, nu am putut găsi nimic despre ordinea inversă a URL-urilor proxy în documentația Apache.

Nici măcar Google nu a putut returna nicio soluție sau ar putea fi că nu am putut încadra corect întrebarea.

Dacă alții ar putea adăuga mai multe explicații tehnice la acest răspuns, va fi grozav.

EDIT: Există o notă clară despre aceasta în documentația de la https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#:~:text=ordering%20or%20override.-,Ordering%20ProxyPass%20Directives,URL.%20Note%20that%20there%20is% 20some%20relation%20with%20worker%20sharing,-.

drapel in
Citat din [documentația ProxyPass](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass): `Regulile ProxyPass și ProxyPassMatch configurate sunt verificate în ordinea configurării. Prima regulă care se potrivește câștigă. Deci, de obicei, ar trebui să sortați regulile ProxyPass conflictuale, începând cu cele mai lungi adrese URL. În caz contrar, regulile ulterioare pentru URL-uri mai lungi vor fi ascunse de orice regulă anterioară care utilizează un subșir principal al adresei URL. Rețineți că există o anumită relație cu partajarea lucrătorilor.`. Au pus chiar și un chenar roșu în jurul lui.
drapel br
Mi-a scapat asta. multumesc @GeraldSchneider

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.