我有一堆重寫規則,必須從 apache 移植到 nginx。
這是一個相當痛苦的過程,因為我無法查看我的重寫規則和“if”條件是否按我希望的方式工作。
Apache 確實對其重寫模組進行了調試。我能為 nginx 做什麼?
答案1
使能夠rewrite_log
:
rewrite_log on;
並設定調試級別error_log
指示:
error_log /var/log/nginx/localhost.error_log notice;
答案2
答案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';
}