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_log
diretiva:
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 server
bloco 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';
}