Skip to content

modules core

Doychin edited this page May 31, 2015 · 2 revisions

Request Logic Modules

Все някъде в кода имаме място, където взима входящия рикуест и решава какво да прави с него. Едно от нещата, коит може да направи е да го пусне на модулите в правилната последователност. Друго нещо, което може да се направи е да се покаже Server Status-a, който няма нищо общо с модулите и кеширането като лога.

Мисля, че хубаво име е handlers.

Иска ми се тази логика какво да се прави да е модулярна. За всеки виртуален хост (в конфигурацията) да може да избираме коя логика да се изпълнява. В момента виждам два вида модула за работа и те са:

  • Кеширане с взимане от upstream (подразбиращия се)
  • Server Status

За целта ще сложим един незадължителен ключ в конфигурацията на кеш зоните, да кажем - handler. За името не съм сигурен, не ми харесва това. Пример:

{
    "name": "proxied.example.com",
    "upstream_address": "http://example.com",
    "cache_zone": 2,
    "cache_key": "2.1"
},
{
    "name": "server-status.page",
    "handler": "server_status"
}

Това ще ни реши проблема със странния хак, с който сме пуснали статуса. Също така, ще ни позволи по - нататък да можем да добавяме друг вид логика за обратоване на рикуест. Като например plain old даване на файлове от дикса. Или CGI, PHP, WSGI и подобни.

Clone this wiki locally