melhor maneira de depurar regras de reescrita do nginx no arquivo de configuração?

melhor maneira de depurar regras de reescrita do nginx no arquivo de configuração?

Eu tenho um monte de regras de reescrita que preciso portar do Apache para o nginx.

É um processo bastante doloroso porque não consigo ver se minhas regras de reescrita e condições "se" estão funcionando como desejo.

O Apache tinha depuração para seu módulo de reescrita. O que posso fazer pelo nginx?

Responder1

Habilitarrewrite_log:

rewrite_log on;

e defina o nível de depuração emerror_logdiretiva:

error_log /var/log/nginx/localhost.error_log notice;

Responder2

Ativar suporte à depuraçãoe defina o nível de depuração em error_log.

error_log   /var/log/nginx/error.log debug;

Agora você pode acompanhar o log e enviar suas solicitações. Provavelmente há mais detalhes do que você deseja, mas às vezes isso pode salvar vidas.

Ah, e você deve estar ciente de quese é mau, pelo menos em um contexto de localização...

Responder3

Usar logs e suporte integrado para depuração é definitivamente a maneira mais razoável. Se você estiver fazendo uma depuração rápida de roteamento nos estágios iniciais e quiser interagir apenas por meio do navegador/cliente, usando oretorne 4xx “texto”;directiva também poderá dar-lhe a resposta que pretende com muito pouco esforço. Por exemplo,

http {
  server {
    listen 80;
    server_name mydomain.net;
    return 404 "mydomain 80 route";
  }

  server {
    listen 80 default_server;
    return 404 "default 80 route";
  }
}

O texto na página retornada informará qual serverbloco sua solicitação foi acionada.

Responder4

Outra boa etapa de depuração é verificar se as regras do Nginx estão sendo levadas em consideração:

location /test {
    return 200 'My test';
}

informação relacionada