Отладка location правил для Nginx

Иногда бывает, что вроде бы правило написано правильно, но почему-то сервер все равно не находит ваш скрипт. Так можно потратить много времени впустую из-за какой-то опечатки.
Чтобы спасти время, достаточно прибегнуть к небольшому трюку. Для этого нужно воспользоваться командой «add_header», которая позволяет добавлять ваши собственные заголовки в ответ сервер. В целом, никто ведь не запрещает запихать туда отладочную информацию, так почему бы это и не сделать?


location ~ ^/https-proxy(/.*)$ {
include fastcgi.conf;
# запихиваем в заголовки результат разбора правила и за одно всякие пути
add_header X-Document-root $document_root always;
add_header X-FastCgi-ScriptName $fastcgi_script_name always;
# а это результат работы регулярки, ляпота
add_header X-Regexp-Result $1 always;
add_header X-Script-Filename $document_root/https-proxy.php always;
fastcgi_param REQUEST_URI $1;
fastcgi_param SCRIPT_NAME https-proxy.php;
fastcgi_param SCRIPT_FILENAME $document_root/https-proxy.php;
fastcgi_pass 127.0.0.1:9100;
break;
}

Перегражвем сервер, открываем консоль браузера и любуемся на наши «логи»


Connection:keep-alive
Content-Encoding:gzip
Content-Transfer-Encoding:binary
Content-Type:text/html; charset=UTF-8
Date:Sat, 29 Jul 2017 08:13:01 GMT
Server:nginx/1.10.3 (Ubuntu)
Transfer-Encoding:chunked
X-Document-root:/var/www/test.dev
X-FastCgi-ScriptName:/https-proxy/some/path/to/file.html
X-Regexp:/some/path/to/file.html
X-Script-Filename:/var/www/test.dev/https-proxy.php

Ляпота то какая!

This entry was posted in nginx, Работа. Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать язык разметки Markdown

Protected by WP Anti Spam