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';
}