Plack :: Middleware :: REVERSEPOXIPATH

Ajuste proxied env para combinar com o face de clientes
Baixe Agora

Plack :: Middleware :: REVERSEPOXIPATH Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Brad Bowman
  • Site do editor:
  • http://search.cpan.org/~bowmanbs/

Plack :: Middleware :: REVERSEPOXIPATH Tag


Plack :: Middleware :: REVERSEPOXIPATH Descrição

Caso de uso: proxiando reverso / sub / caminho / para http: // 0: 5000 / outro / caminho /. Este middleware fica no back-end e usa cabeçalhos enviados pelo proxy para ocultar o encanamento proxy do aplicativo de back-end.plack :: Middleware :: REVERSEPOXY é um módulo Perl que faz o host, porta e esquema.plack :: Middleware :: REVERSEPOXYPATH adiciona manuseio de caminhos. O objetivo é permitir que os aplicativos back-end proxied reconstruam e usem o URL voltado para o cliente. A reverseproxy faz a maior parte do trabalho e reverseProxyPath faz os caminhos. O aplicativo interno pode simplesmente usar $ req-> base para redirecionar, definir cookies e similares. Eu acho que o termo proxy reverso leva à confusão, então eu vou usar o front-end para me referir ao proxy reverso (por exemplo, lula) que O cliente atinge primeiro e back-end para consultar o servidor que executa seu aplicativo PSGI (por exemplo, Starman) .plack :: Middleware :: REVERSEPOXYPATH Ajusta Script_Name e Path_Info com base nos cabeçalhos de um front-end para que seja o aplicativo interno Finja que não há proxy lá. Isso é útil quando você não é proxiando e servidor inteiro, mas apenas um caminho mais profundo. Em termos de apache / espelho / foo / http: // localhost: 5000 / bar / deve ser usado com plack :: middleware :: reverseproxy que faz ajustes equivalentes para o esquema, host e portuário Atributos de ambiente.synopsisGeneralmente você Simples Use o Middle-Ware: Ativar "reverseproxy"; Ativar "reverseProxyPath"; abaixo é um exemplo elaborado que inclui uma extremidade frontal de proxy reversa dummy e o back-end usando reverseproxipath. Corra com algo como: Plack_Server = Starman Perl -x -tilib ./lib/plack/middleware/reverseproxypath.pm (Perl -mplack :: Runner #line 85 Sub MW (); use plack :: construtor; # Configure seu proxy inverso (perlbal, verniz, apache, squid) # para enviar os cabeçalhos de nome de script encaminhados e X-TRAVERSAL-PATH. # Este exemplo apenas usa Plack :: App :: Proxy para demonstrar: Sub Proxy_Builder {Require Plack :: App :: Proxy; # Imagine isto é https: // de alguma forma / fepath / from Mount "http: // localhost / fepath / from" => construtor {enable mw {mw {my ($ app, $ env) = @_; # Cabeçalhos para reverseProxyPath $ Env -> {'http_x_forwarded_script_name'} = '/ fepath / from'; $ Env -> {'http_x_traversal_path'} = '/ bepath / para'; # Cabeçalhos para reverseproxy (muitas vezes já enviado) $ Env -> {'http_x_forwarded_host'} = 'de alguma forma'; # fingindo .. $ Env -> {'http_x_forwarded_port'} = 443; morrer "precisa de mp" se! $ Env -> {'psgi.multiprocess'}! $ Env -> {'psgi.multithread'}; $ app -> ($ env); }; Plack :: App :: Proxy-> Novo (Remoto => 'http: // 0: 5000 / bepath / to') -> to_app; }; }; # No seu back-end plack, meu $ App = Builder {# / bepath / to / * é proxied (também pode ser acessado diretamente) montar "/ bepath / to" => construtor {# Ajustes base: # 1) http: / / 0: 5000 / BEPATH / TO / X # REVERSERSEPTY Fixes Esquema / Host / Port Ativar "REVERSEPROXY"; # 2) https: // de alguma forma / bepath / to / x # reversepoxath usa novos cabeçalhos # corrige script_name e path_info habilitar "reverseproxypath"; # 3) https: // de algumashost / fepath / de / x # $ req-> base + $ req-> caminho agora é o URL voltado para o cliente # então URLs, set-cookie, localização pode funcionar ingenuamente montagem "/ base" => \ echo_base; Monte "/ env" => \ echo_env; }; Monte "/ env" => \ echo_env; # proxy para mim para manter a sinopse curta (necessidades> 1 trabalhador) proxy_builder (); }; # Sinopse encanamento: sub echo_base {requer plack :: Solicitação; , ]} sub echo_env {my ($ env) = @_; , ]} {MEU CÓDIGO $ = mudança; sub {my $ app = shift; sub {$ code -> ($ app, @_); }}}; Plack :: Runner-> New-> Executar ($ app); __ End__ # com reverseproxipath e reverseproxy aplicados obter http: // localhost: 5000 / fepath / from / de base https: // de alguma forma / fepath / de / base # conversando diretamente Para o back-end, obtenha http: // localhost: 5000 / BEPATH / TO / BASE http: // localhost: página inicial de 5000 / BEPATH / TO / BASEPRODUCT


Plack :: Middleware :: REVERSEPOXIPATH Software Relacionado