Лучший способ отладки правил перезаписи nginx в файле конфигурации?

Лучший способ отладки правил перезаписи nginx в файле конфигурации?

У меня есть несколько правил перезаписи, которые мне нужно перенести с 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';
}

Связанный контент