У меня есть несколько правил перезаписи, которые мне нужно перенести с Apache на Nginx.
Это довольно болезненный процесс, потому что я не могу увидеть, работают ли мои правила переписывания и условия «если» так, как мне нужно.
Apache имел отладку для своего модуля rewrite. Что я могу сделать для 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';
}