Eu detalhei em esta pergunta no StackOverflow como algumas solicitações aleatórias não estão fazendo isso do cliente para o meu servidor de aplicativos Node.js, resultando em um tempo limite do gateway. Em resumo, pedidos idênticos são, aleatoriamente, nem mesmo o suficiente para acionar um console.log () na minha primeira linha de middleware expresso.
Eu preciso diminuir o problema, porém, para descobrir onde o tráfego está sendo perdido e foi sugerido que eu tente um sniffer de pacotes nos meus servidores de aplicativos. Aqui está minha configuração:
Aqui está o que é interessante / incomum: os servidores node.js começaram como servidores PHP com uma pilha Apache e continuam a servir arquivos PHP para o meu domínio (streamified.me). No entanto, uso uma pequena mágica do httpd.conf nos servidores de aplicativos para que as solicitações para o api.streamified.me sejam roteadas pela porta 8888 para o servidor node.js:
RewriteCond %{HTTP_HOST} ^api.streamified.me
RewriteRule ^(.*) http://localhost:8888$1 [P]
Assim, o pedido atinge o balanceador de carga = > vai para um servidor de aplicativos = > é roteado para a porta 8888 se for destinado à API = > é tratado pelo node.js
Então, no mesmo arquivo httpd.conf, eu liguei o RewriteLogLevel 5 e então criei um script PHP + CURL simples no meu localhost para acessar o meu api.streamified.me com uma URL aleatória (o que deveria fazer com que node.js disparar uma resposta simples "não encontrada" até que isso tenha resultado em um tempo limite do Gateway. Aqui, você pode ver que isso aconteceu - e o registro de reescrita mostra que a solicitação foi definitivamente recebida pelo servidor de aplicativos e encaminhada para a porta 8888 ... mas nunca foi recebida pelo node.js (ou, pelo menos, pelo primeira linha de código na primeira linha do middleware nunca a obtém ...)
Link da imagem: link
Tags node.js