<div dir="ltr">Perai,<div><br></div><div>então o "<span style="font-size:12.8px">processamento de requisições é encarregado por outro módulo" não é um processo perl?</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Se nao é, não tem porque usar mod_perl hoje,</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">ou melhor, você até poderia, mas faria na sua aplicação, que re-faria o request para o "outro modulo", faria os seus logs e retornaria para o apache.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Mas eu usaria o mod_proxy pois é mais facil de usar ele, e é mais fácil se você usa perlbrew ou roda o perl em outro usuário que nao o do apache.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Geralmente, uso server_starter com starman.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">O server_starter é pra fazer 'nice restart' e o starman para controlar os forks.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">em bash:</span></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">STARMAN_BIN="$(which starman)"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">DAEMON="$(which start_server)"</font></span></div></div><div><div style="font-size:12.8px"><font face="monospace, monospace"><br></font></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">up_server (){</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    export TYPE="$1"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    export PSGI_APP_NAME="$2"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    export PORT="$3"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    export WORKERS="$4"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    ERROR_LOG="$FLOTUM_LOG_DIR/$TYPE.error.log"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    STATUS="$FLOTUM_LOG_DIR/$TYPE.start_server.status"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    PIDFILE="$FLOTUM_LOG_DIR/$TYPE.start_server.pid"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    APP_DIR="$FLOTUM_APP_DIR/$TYPE"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    touch $ERROR_LOG</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    touch $PIDFILE</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    touch $STATUS</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    STARMAN="$STARMAN_BIN -I$APP_DIR/lib --preload-app --workers $WORKERS --error-log $ERROR_LOG.starman $APP_DIR/$PSGI_APP_NAME"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    DAEMON_ARGS=" --pid-file=$PIDFILE --signal-on-hup=QUIT --status-file=$STATUS --port 0.0.0.0:$PORT -- $STARMAN"</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    echo "Restarting $TYPE..."</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    $DAEMON --restart $DAEMON_ARGS</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    if [ $? -gt 0 ]; then</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">        echo "Restart failed, application likely not running. Starting..."</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">        /sbin/start-stop-daemon -b --start --pidfile $PIDFILE --chuid $USER --chdir $APP_DIR -u $USER --exec $DAEMON --$DAEMON_ARGS</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">    fi</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">}</font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div></div><div><div style=""><span style="font-size:12.8px"><font face="monospace, monospace">up_server "api" "foobar.psgi" $API_PORT $API_WORKERS</font></span></div></div></blockquote><div><div style="font-size:12.8px"><br></div></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-06 16:08 GMT-03:00 Alceu Rodrigues de Freitas Junior <span dir="ltr"><<a href="mailto:glasswalk3r@yahoo.com.br" target="_blank">glasswalk3r@yahoo.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Não sei se ajuda em algo, mas eu não estou usando mod_perl no ambiente (apesar de ele estar instalado).<br>
<br>
Dado minha preferência por linguagem de programação e ele e já estar disponível, foi minha primeira opção.<br>
<br>
O processamento de requisições é encarregado por outro módulo, cujo o qual não possuo nenhum controle.<br>
<br>
Vou avaliar a disponibilidade do mod_dumpio e continuar daí pra frente.<br>
<br>
Abraço,<br>
<br>
Alceu<span class=""><br>
<br>
Em 06-10-2015 15:46, Renato Santos escreveu:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Eu tentaria começar então pelo mod_dumpio<br>
<br>
Tentar escrever num filehandle ou se falhar, na memoria tipo /dev/shm<br>
(mas cuidado)<br>
<br>
e ai processar posterior e ir jogando fora.<br>
<br>
<br>
O que eu sugiro, é ter 'mais controle' sobre o ambiente, ou seja,<br>
independente do que você for fazer, ter certeza que vai funcionar e que<br>
você pode mudar depois sem maiores problemas.<br>
<br>
Creio que isso não é tão verdade, caso contrario, você não estaria mais<br>
usando mod_perl.<br>
<br>
<br>
<br>
<br>
2015-10-06 15:42 GMT-03:00 Alceu Rodrigues de Freitas Junior<br></span>
<<a href="mailto:glasswalk3r@yahoo.com.br" target="_blank">glasswalk3r@yahoo.com.br</a> <mailto:<a href="mailto:glasswalk3r@yahoo.com.br" target="_blank">glasswalk3r@yahoo.com.br</a>>>:<span class=""><br>
<br>
    Infelizmente não Renato... eu preciso que isso seja da forma mais<br>
    transparente possível e com o mínimo de impacto possível em desempenho.<br>
<br>
    Imagino que obter o BODY da requisição HTTP e salvar "em algum<br>
    lugar" para processamento posterior seria o mais rápido a ser feito.<br>
<br>
    Em 06-10-2015 12:08, Renato Santos escreveu:<br>
<br>
        Nenhuma chance de mover o certificado para 'trás' (indo na visão<br>
        client<br>
        -> apache -> perl)  e criar um (nginx -> suas-regras -> apache<br>
        -> perl)<br>
<br>
        Com nginx você pode fazer 'cascata' de proxy ou/e usar<br>
        processadores dos<br>
        dados até mesmo dentro dele, 'in memory', seria melhor do que usar o<br>
        mod_dumpio que provavelmente escreve os dados em disco.<br>
<br>
<br>
    =begin disclaimer<br>
       Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" rel="noreferrer" target="_blank">http://sao-paulo.pm.org/</a><br></span>
    SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a> <mailto:<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a>><span class=""><br>
    L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
    =end disclaimer<br>
<br>
<br>
<br>
<br>
--<br>
Saravá,<br>
Renato CRON<br>
<a href="http://www.renatocron.com/blog/" rel="noreferrer" target="_blank">http://www.renatocron.com/blog/</a><br></span>
@renato_cron <<a href="http://twitter.com/#!/renato_cron" rel="noreferrer" target="_blank">http://twitter.com/#!/renato_cron</a>><span class=""><br>
<br>
<br>
=begin disclaimer<br>
    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" rel="noreferrer" target="_blank">http://sao-paulo.pm.org/</a><br>
  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br>
</span></blockquote><div class="HOEnZb"><div class="h5">
<br>
=begin disclaimer<br>
  Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" rel="noreferrer" target="_blank">http://sao-paulo.pm.org/</a><br>
SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div></div>
</div>