Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду

S.A.N nginx-forum на forum.nginx.org
Пн Май 30 13:15:06 UTC 2016


> Возможно, эффективным решением для соединения бэкэндов было бы
> фиксированное количество соединений, бесконечный keepalive и
> pipelining

Да, мы сделали свой pool keepalive сокетов, это действительно помогает.
pipelining мы хотели сделать, но Nginx его не поддерживает, мы гоняем
запросы между бекендами через Nginx, потому что нужен кеш Nginx и
балансировка запросов между бекендами.

Для наших задач (возможно и не только для наших) подходит memcache протокол,
он очень простой, ответы имеют id - это uri запроса, мультиплицировать его
очень просто.
Я поискал сторонние модули, но они не умеет принимать входящие memcache
запросы.

Было бы очень круто, если бы в Nginx была возможность что-то вроде этого

location /
{
   proxy_cache_pass localhost:11211; # address memcached server socket
}


Тогда клиентcий код станет гениально простым :)

memcached->connect("localhost:11211") 
создания соединения с Nginx для общения по протоколу memcached

memcached->get($uri) 
запрос принимает Nginx, ищет ответ в своем кеше, ключ запроса равен ключу
кеша, если в кеше ответа нет, этот запрос отправляется на бекенд,
проксирования на бекенд такое же если бы этот запрос пришел от браузера по
НТТР, т.е GET uri HTTP/1.1

Я понимаю, что это похоже на извращения, но поверьте разработчики бекендов
оценят это и очень быстро и появится много статей как использовать Nginx
вместо Memcache.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266693,267228#msg-267228



Подробная информация о списке рассылки nginx-ru