Problema na exibição de PDFs em Internet Explorer usando a PDFlib

Estava fazendo alguns testes com o PDFLib, e percebi um certo problema em navegadores Internet Explorer: Quando tentava gerar um PDF passando-o em modo Inline para o browser (não como anexo), o Internet Explorer dava erro e não exibia a mensagem. Abaixo o trecho do código que ilustra isso:

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=index.pdf");
print $buf;

Após algumas consultas, fui informado pelo próprio pessoal da PDFLib, que se tratava de um problema no próprio IE especificamente na geração de arquivos PDF de forma dinâmica. Quando o IE reconhece que o tipo do conteúdo necessita de um controle ActiveX (PDF por exemplo), ele cancela a transmissão e refaz uma nova requisição para obter o arquivo. Abaixo alguns links relacionados na KB da Microsoft sobre o problema:

Ontém depois de algumas pesquisas, descobri uma forma de contornar este erro, adicionando as linhas a seguir, antes do código relatado acima:

header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');

Espero que isso possa ajudar outros no mesmo problema…

Ferramentas de monitoramento

Monitoramento de Tráfego

Abaixo são apresentadas algumas ferramentas úteis para análise e monitoramento do serviço de rede, processos, entre outros.

  • iptraf: É um monitor de rede baseado na biblioteca ncurses que gera diversas estatísticas de rede incluindo informações TCP, contadores UDP, informações de ICMP e OSPF, carga de ethernet entre outros.
  • ethstatus: É outro utilitário de monitoramento baseado em console que apresenta dados estatísticos sobre a interface ethernet. Ele é similar ao iptraf, porém foi feito para atuar como uma aplicação permanente para o monitoramento de carga de rede.
  • pktstat: Apresenta em tempo real, uma lista de conexões ativas em uma interface de rede, e quanto de banda está sendo utilizada por ela.
  • iftop: o iftop é para o uso de rede, oque o top é para o uso de CPU. Ele escuta o tráfego de rede em uma determinada interface e apresenta uma tabela de uso corrente de banda por pares de hosts.
  • vnstat: Ferramenta de monitoramento baseado em console que apresenta dados de entrada/saída e permite armazenar dados históricos para análise. Também faz um “gráfico” de uso por horário. Não é necessário estar logado como root, pois captura as informações do /proc.

Monitoramento de processos

  • whowatch: É um utilitário semelhante ao comando who que apresenta informações sobre os usuários logados na máquina em tempo real. Além das informações padrão (login tty, host, processos do usuário) é apresentado o tipo da conexão (telnet/ssh) e permite exibir detalhes sobre os processos, informações do sistema, entre outros.

<Update 17/01/2006>
- Adicionado o vnstat;
</Update 17/01/2006>

Pound: Proxy reverso, balanceador de carga e front-end HTTPs

Segundo o site do Pound, ele é “um proxy reverso, balanceador de carga e um front-end HTTPs para servidores Web”. Ele foi desenvolvido para permitir a distribuição de carga entre diversos servidores Web e possibilitar um empacotamento SSL conveniente para os servidores que não oferecem este serviço de forma nativa.

Um ótimo artigo sobre sua instalação em Debian, pode ser encontrado aqui.