-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ngx_postgres module does not support subrequests in memory #24
Comments
@an0ma1ia к сожалению r.subrequest() активно полагается на r->subrequest_in_memory (мы даже делали отдельный патч на nginx для допила логики r->subrequest_in_memory). если этот флаг убрать то тело ответа будет улетать в клиентское соединение. В качестве костыля, конечно, можно предложить делать подзапрос в дополнительный локейшн который будет ходить через proxy_pass на ngx_postgres локейшн. Как эту проблему решает lua постараюсь посмотреть на след неделе. |
Думаю, lua проблему не решает, а делает такие подзапросы, которые понимает ngx_postgres. Если подскажете, как реализовать поддержку subrequest_in_memory в ngx_postgres, попробую его попатчить. Хотя бы основные принципы, что надо сделать, и где посмотреть пример кода. Смотрю сейчас код ngx_http_memcached_module, который вполне успешно работает с r.subrequest, не вижу там ничего специфического. Но вообще, получается многие сторонние модули нельзя дёргать из njs по этой причине. |
С версии 1.13.10 http://hg.nginx.org/nginx/rev/20f139e9ffa8 подробности в коммит логе. Возможно даже все заработает если убрать проверку на r->subrequest_in_memory в ngx_postgres, postpone подхватит ответ и положит в r->out где его будет искать njs. |
Действительно, работает после такого патча:
Спасибо вам огромное! |
Пытаюсь дёрнуть постгрес из njs:
Получаю в логе:
В коде ngx_postgres есть такие буковки:
В то же время, из lua модуля подобный подзапрос работает. Но lua как раз пытаюсь заменить njs'ом. Как правильнее решить проблему? Понятно, что идеально было бы допилить ngx_postgres, но просить агента ж бесполезно, а сам я врядли смогу сделать приемлемый патч.
Возможно ли добавить опцию в r.subrequest, чтобы можно было делать не in-memory подзапросы?
The text was updated successfully, but these errors were encountered: