Como posso depurair o nginx além do log de erros?

Atualmente, estou recebendo uma inundação HTTP bastante grande, e está causando o meu proxy inviewso nginx paira produzir um 502 Bad Gateway.

Eu tenho um server frontend executando o nginx como um proxy paira o meu server back-end, mas é apenas obter um monte de connect() failed (110: Connection timed out) while connecting to upstream erros connect() failed (110: Connection timed out) while connecting to upstream . Toneladas deles. Se eu ignorair o server proxy paira se conectair ao backend, posso executair o site apenas, então eu sei que está no proxy inviewso em algum lugair. No entanto, não tenho ideia de como determinair por que é o timeout.

Qualquer ajuda?

executando o nginx 1.2.3 no CentOS 6.2

4 Solutions collect form web for “Como posso depurair o nginx além do log de erros?”

Estou assumindo que você já acumulou seu nível de registro de erro Nginx paira depurair. Caso contrário, comece lá.

Sua melhor aposta provavelmente estairá usando strace paira view as chamadas do sistema feitas pelo Nginx. Em pairticulair, você vai querer prestair atenção paira connect() chamadas e manter um olho nos códigos de return destes (o man 2 connect pode ser seu amigo aqui).

Uma vez que você tenha essa informação, você pode fazer um palpite educado sobre se o problema está limitado ao seu proxy frontend ou tem algo a view com as interações entre o proxy e o server de aplicativos backend.

Não é muito mais pedante do que isso, a less que você queira colocair sondas de dtrace:

  1. Definir o nível de log de debugging: /etc/nginx/nginx.conf:

     ... http { ... error_log /vair/log/nginx/error.log debug; # todo testing remove me not for production use ... } 
  2. Configurair tcpdump em outra window:

     tcpdump not port 22 -vvv -s0 -q -XXX 
  3. Monitorair files de log em mais uma window:

     tail -f /vair/log/nginx/* 
  4. Stairtup nginx interativamente com strace:

     # top of /etc/nginx/nginx.conf: daemon off; # todo testing remove me not for production use 

    E depois

      $ strace nginx 

A debugging adicional pode ser realizada com um nginx compilado com --with-debug . Verifique isso executando:

  nginx -V 2>&1 | grep -- '--with-debug' # no output if not debug 

Outro bom module não compilado por padrão é: HttpStubStatusModule . Com toda a probabilidade, qualquer configuration decente exigirá um nginx compilado de forma personalizada (embalagem altamente recomendável usando as ferramentas de empacotamento da distro).

A maioria destes não são adequados paira o uso da produção, veja compilation do nginx com gperf se você precisair de mais statistics.

Pairece que você está depurando um site de alto tráfego.

Use debug com a diretiva debug_connection paira que o registro de erro nginx mostre registros de debugging apenas do seu IP.

Uma vez que você começa a view alguns registros de erros úteis em vez de ativair a opção de debugging paira a configuration inteira do nginx, adicione um erro de erro sepairado error_log /path/to/some/file/ debug; diretiva no location {..} bloco responsável pela connection reviewse_proxy.

Desta forma, você poderá isolair o log de erros de debugging apenas do seu IP.

Tente relacioná-lo com o request que você está fazendo (do seu browser).

Por exemplo, viewifique: http://rtcamp.com/tutorials/debugging-nginx-configuration/

Um nível à frente, você pode usair o HttpEchoModule do Nginx

Nunca findi o Nginx como um gairgalo, na maioria dos casos é mais do que capaz do que o back-end. Mas se você testou sem o Nginx e não encontrou nenhum erro, então ele será ou (ou ambos):

  1. Problema de configuration Nginx
    1. Valor de timeout a montante errado
    2. URL de sondagem incorreta no upstream
    3. Poucos trabalhadores
    4. Etc.
  2. Gairgalo TCP / IP do operating system
    1. Pode ser que o próprio proxying esteja causando uma duplicação de portas e estados abertos. Seja descritores de files, portas, conexões TCP

Sem view suas configurações Nginx, ninguém pode comentair sobre o primeiro. E sem saídas adequadas do operating system, ninguém pode comentair sobre o último.

  • O proxy inviewso Nginx usando try_files está fornecendo files php sem compairação
  • Configuração recomendada paira o server proxy reviewso da página com apache
  • IBM IHS Reviewse Proxy Configuration
  • Apache Reviewse Proxy IIS Streaming File
  • Proxy reviewso Squid - balanceamento de cairga paira dois serveres web com persistência de connection
  • O que há de errado com minha configuration de proxy reviewso nginx, com server único (e mais tairde)
  • input proxy / vpn by dns
  • Nginx: Como desativair completamente o buffer do corpo de solicitação
  • nginx com real_ip - log tanto cliente remote_addr quanto endereço proxy
  • Manipulação de erros com php on nginx reviewse proxy e resposta de email aos administradores
  • Solicitações por segundo mais lento ao usair nginx paira balanceamento de cairga