PLACK :: Middleware :: ReverseProxyPath

Berücksichtigen Sie die elegante ENV, um die Client-Anlage anzupassen
Jetzt downloaden

PLACK :: Middleware :: ReverseProxyPath Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Brad Bowman
  • Website des Verlags:
  • http://search.cpan.org/~bowmanbs/

PLACK :: Middleware :: ReverseProxyPath Stichworte


PLACK :: Middleware :: ReverseProxyPath Beschreibung

Anwendungsfall: Reverse-Proxying / Sub / Pfad / für HTTP: // 0: 5000 / Andere / Pfad /. Dieser Middleware sitzt auf dem Backend-Ende und verwendet Header, die vom Proxy gesendet werden, um den Proxy-Sanitär von der Back-End-App auszublenden. Middleware :: ReverseProxyPath fügt die Handhabung von Pfaden hinzu. Das Ziel ist es, eingereichte Back-End-Apps zuzulassen, um die Client-Fach-URL zu rekonstruieren und zu verwenden. ReverseProxy macht die meisten Arbeiten und Reversepoxypath die Wege. Die innere App kann einfach $ REQ-> Base verwenden, um Cookies umzuleiten, Cookies und dergleichen zu setzen. Ich finde den Begriff Reverse-Proxy, der zu Verwirrung führt, sodass ich das Front-Ende verwenden kann, um auf den umgekehrten Proxy (z. B. Tintenfisch) zu verweisen Der Client trifft zuerst und Back-End, um sich auf den Server zu beziehen, der Ihre PSGI-Anwendung (z. B. Starman) ausführt. Stellen Sie sich vor, es gibt keinen Proxy dort. Dies ist nützlich, wenn Sie kein Proxying und den gesamten Server, sondern nur einen tieferen Pfad haben. In Apache-Begriffe: proxypass / spiegel / foo / http: // localhost: 5000 / bar / es sollte mit pflack :: Middleware :: ReverseeProxy verwendet werden, die gleichwertige Anpassungen an das Programm, Host- und Port-Umgebungsattribute unternehmen. Einfache Verwendung der Mitte: Aktivieren Sie "ReverseProxy"; Aktivieren Sie "ReverseProxypath"; Nachfolgend ist ein aufwendiger Beispiel, der sowohl ein Dummy-Reverse-Proxy-Frontend als auch das Back-Ende mit ReverseProxypath umfasst. Laufen Sie mit etwas wie: pflack_server = starman perl -x -ilib ./lib/plack/middleware/revereeproxypath.pm(Sample-Ausgabe unten) #! Perl -mplack :: runner #line 85 sub mw (); Verwenden Sie placken :: erbauer; # Konfigurieren Sie Ihren Reverse-Proxy (Perlbal, Lack, Apache, Squid, Squid) #, um X-weitergeleitete Skript-Name und X-Traversal-Pfad-Header zu senden. # Dieses Beispiel verwendet nur PLISCK :: App :: Proxy zum Demonstrieren: Sub Proxy_Builder {PLUCK :: App :: Proxy; # Stellen Sie sich dies vor # Header für ReverseProxypath $ ENV -> {'http_x_forwarded_script_name'} = '/ fepath / von'; $ env -> {'http_x_traversal_path'} = '/ BEPPATH / TO'; # Header für ReverseProxy (oft bereits gesendet) $ env -> {'http_x_forwarded_host'} = 'irgendwoHost'; # vorgeben .. $ env -> {'http_x_forwarded_port'} = 443; Die "Brauchen Sie MP" Wenn! $ env -> {'psgi.multiprocess'}! $ env -> {'psgi.multithread';}; $ app -> ($ env); }; PLUCK :: App :: Proxy-> NEU (Remote => 'http: // 0: 5000 / BEPATH / TO') -> to_app; }; }; # In Ihrem Plack-Back-End My $ App = Builder {# / BEPPATH / / * ist untersteuert (kann auch direkt aufgerufen werden) Mount "/ BEPPATH / TO" => Builder {# BASE-Anpassungen: # 1) HTTP: / / 0: 5000 / BEPPATH / BEPATCH / / X # REVEREEPROXY Fixes Schema / Host / Port Enable "ReverseeProxy"; # 2) https: // irgendwoHost / bepath / to / x # ReverseProxyPath verwendet neue Header # Fixes script_name und path_info aktivieren "revereepoxypath"; # 3) https: // phantost / fepath / from / x # $ echt-> base + $ echt-> pfad Nun ist die Client-Facing-URL # SO-URLs, Set-Cookie, Standort kann naiv Mount "/ Base" arbeiten => \ echo_base; Mount "/ ENV" => \ echo_env; }; Mount "/ ENV" => \ echo_env; # Proxy für mich, um die Synopsis kurz zu halten (Anforderungen> 1 Arbeiter) proxy_builder (); }; # Synopsis-Klempnerung: SUB ECHO_BASE {erfordert PLUCK :: Anfrage; , ]} sub echo_env {My ($ env) = @_; , ]} sub mw () {mein $ code = Schicht; SUB {MEINE $ APP = Schicht; SUB {$ Code -> ($ app, @_); }}}; Pflanze :: runner-> new-> run ($ app); __ end__ # mit reversEproxypath und revers repeeproxy get http: // localhost: 5000 / fepath / from / base https: // phantost / fepath / from / base # direkt reden Zum Back-End erhalten Sie HTTP: // localhost: 5000 / BEPATH / / Base HTTP: // localhost: Homepage von 5000 / BEPATH / / BASEPRODUCT


PLACK :: Middleware :: ReverseProxyPath Zugehörige Software