구성 파일에서 nginx 재작성 규칙을 디버깅하는 가장 좋은 방법은 무엇입니까?

구성 파일에서 nginx 재작성 규칙을 디버깅하는 가장 좋은 방법은 무엇입니까?

Apache에서 nginx로 이식해야 하는 재작성 규칙이 많이 있습니다.

재작성 규칙과 "if" 조건이 원하는 대로 작동하는지 확인할 수 없기 때문에 이는 다소 고통스러운 프로세스입니다.

Apache에는 재작성 모듈에 대한 디버깅이 있었습니다. nginx에 대해 무엇을 할 수 있나요?

답변1

할 수 있게 하다rewrite_log:

rewrite_log on;

디버그 수준을 설정합니다.error_log지령:

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

답변2

디버깅 지원 활성화, error_log에서 디버그 수준을 설정합니다.

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

이제 로그를 추적하고 요청을 보낼 수 있습니다. 원하는 것보다 더 자세한 내용이 있을 수 있지만 때로는 그것이 생명의 은인이 될 수도 있습니다.

아 그리고 그건 알아두셔야 할 것 같아요만약에 악하다, 위치 맥락에서 적어도 ...

답변3

디버깅을 위해 로그와 내장된 지원을 사용하는 것이 확실히 가장 합리적인 방법입니다. 초기 단계에서 빠른 라우팅 디버깅을 수행하고 브라우저/클라이언트를 통해서만 상호 작용하려는 경우4xx "텍스트"를 반환합니다.지시문을 통해 아주 적은 노력으로 원하는 답을 얻을 수도 있습니다. 예를 들어,

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

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

반환된 웹페이지의 텍스트는 server요청이 트리거된 블록을 알려줍니다.

답변4

또 다른 좋은 디버그 단계는 Nginx 규칙이 전혀 고려되고 있는지 확인하는 것입니다.

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

관련 정보