Теперь рассказываю как именно работает то что ты объяснил в трёх фазах, на самом деле у nginx 10 фаз, это не только принял, обработал и отдал, это гораздо больше:
1) NGX_HTTP_SERVER_REWRITE_PHASE — the phase of request URI transformation on the virtual server level;
2) NGX_HTTP_FIND_CONFIG_PHASE — the phase of the configuration location lookup;
3) NGX_HTTP_REWRITE_PHASE — the phase of request URI transformation on the location level;
4)NGX_HTTP_POST_REWRITE_PHASE — request URI transformation post-processing phase;
5) NGX_HTTP_PREACCESS_PHASE — access restrictions check preprocessing phase;
6) NGX_HTTP_ACCESS_PHASE — access restrictions check phase;
7)NGX_HTTP_POST_ACCESS_PHASE — access restrictions check post-processing phase;
8) NGX_HTTP_TRY_FILES_PHASE — try_files directive processing phase;
9) NGX_HTTP_CONTENT_PHASE — content generation phase;
10) NGX_HTTP_LOG_PHASE — logging phase.
И мы можем взаимодействовать с каждой фазой в наших корыстных целях. В каждой фазе мы имеем определенные переменные, они делятся на два типа, одни константы, вторые можно заменить. Каждая переменная имеет строго один тип "string". То есть тут нет других типов данных