[SP-pm] interceptando requisições de outros módulos do Apache

Renato Santos renato.cron at gmail.com
Tue Oct 6 12:19:25 PDT 2015


Perai,

então o "processamento de requisições é encarregado por outro módulo" não é
um processo perl?

Se nao é, não tem porque usar mod_perl hoje,

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.

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.

Geralmente, uso server_starter com starman.

O server_starter é pra fazer 'nice restart' e o starman para controlar os
forks.


em bash:


STARMAN_BIN="$(which starman)"
DAEMON="$(which start_server)"

up_server (){
    export TYPE="$1"
    export PSGI_APP_NAME="$2"
    export PORT="$3"
    export WORKERS="$4"

    ERROR_LOG="$FLOTUM_LOG_DIR/$TYPE.error.log"
    STATUS="$FLOTUM_LOG_DIR/$TYPE.start_server.status"
    PIDFILE="$FLOTUM_LOG_DIR/$TYPE.start_server.pid"
    APP_DIR="$FLOTUM_APP_DIR/$TYPE"

    touch $ERROR_LOG
    touch $PIDFILE
    touch $STATUS

    STARMAN="$STARMAN_BIN -I$APP_DIR/lib --preload-app --workers $WORKERS
--error-log $ERROR_LOG.starman $APP_DIR/$PSGI_APP_NAME"

    DAEMON_ARGS=" --pid-file=$PIDFILE --signal-on-hup=QUIT
--status-file=$STATUS --port 0.0.0.0:$PORT -- $STARMAN"

    echo "Restarting $TYPE..."
    $DAEMON --restart $DAEMON_ARGS

    if [ $? -gt 0 ]; then
        echo "Restart failed, application likely not running. Starting..."

        /sbin/start-stop-daemon -b --start --pidfile $PIDFILE --chuid $USER
--chdir $APP_DIR -u $USER --exec $DAEMON --$DAEMON_ARGS

    fi
}

up_server "api" "foobar.psgi" $API_PORT $API_WORKERS







2015-10-06 16:08 GMT-03:00 Alceu Rodrigues de Freitas Junior <
glasswalk3r at yahoo.com.br>:

> Não sei se ajuda em algo, mas eu não estou usando mod_perl no ambiente
> (apesar de ele estar instalado).
>
> Dado minha preferência por linguagem de programação e ele e já estar
> disponível, foi minha primeira opção.
>
> O processamento de requisições é encarregado por outro módulo, cujo o qual
> não possuo nenhum controle.
>
> Vou avaliar a disponibilidade do mod_dumpio e continuar daí pra frente.
>
> Abraço,
>
> Alceu
>
> Em 06-10-2015 15:46, Renato Santos escreveu:
>
>> Eu tentaria começar então pelo mod_dumpio
>>
>> Tentar escrever num filehandle ou se falhar, na memoria tipo /dev/shm
>> (mas cuidado)
>>
>> e ai processar posterior e ir jogando fora.
>>
>>
>> O que eu sugiro, é ter 'mais controle' sobre o ambiente, ou seja,
>> independente do que você for fazer, ter certeza que vai funcionar e que
>> você pode mudar depois sem maiores problemas.
>>
>> Creio que isso não é tão verdade, caso contrario, você não estaria mais
>> usando mod_perl.
>>
>>
>>
>>
>> 2015-10-06 15:42 GMT-03:00 Alceu Rodrigues de Freitas Junior
>> <glasswalk3r at yahoo.com.br <mailto:glasswalk3r at yahoo.com.br>>:
>>
>>     Infelizmente não Renato... eu preciso que isso seja da forma mais
>>     transparente possível e com o mínimo de impacto possível em
>> desempenho.
>>
>>     Imagino que obter o BODY da requisição HTTP e salvar "em algum
>>     lugar" para processamento posterior seria o mais rápido a ser feito.
>>
>>     Em 06-10-2015 12:08, Renato Santos escreveu:
>>
>>         Nenhuma chance de mover o certificado para 'trás' (indo na visão
>>         client
>>         -> apache -> perl)  e criar um (nginx -> suas-regras -> apache
>>         -> perl)
>>
>>         Com nginx você pode fazer 'cascata' de proxy ou/e usar
>>         processadores dos
>>         dados até mesmo dentro dele, 'in memory', seria melhor do que
>> usar o
>>         mod_dumpio que provavelmente escreve os dados em disco.
>>
>>
>>     =begin disclaimer
>>        Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>     SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org <mailto:
>> SaoPaulo-pm at pm.org>
>>     L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>     =end disclaimer
>>
>>
>>
>>
>> --
>> Saravá,
>> Renato CRON
>> http://www.renatocron.com/blog/
>> @renato_cron <http://twitter.com/#!/renato_cron>
>>
>>
>> =begin disclaimer
>>     Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>   SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>   L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>



-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20151006/e9f8c155/attachment-0002.html>


More information about the SaoPaulo-pm mailing list