TCP connection limit on dynamic backend
Roman Arutyunyan
arut at nginx.com
Tue Mar 26 11:28:30 UTC 2019
Hi,
On Tue, Mar 26, 2019 at 09:13:44AM +0000, R, Rajkumar (Raj) wrote:
> Hi,
>
> Using nginx in TCP/Stream mode and would like to limit the number of active connection to my backend server whereas the backend is resolved dynamically based on the SNI header ($ssl_preread_server_name). But this does not allow any connections to the backend with below config. I see examples of limiting backend connections if the backend server block is pre configured.
>
> Could you please confirm if this achievable or supported currently with Stream mode?
>
> Below is the related config part.
>
> map $ssl_preread_server_name $backend_svr {
> ~^(\w+).test.com $1-tcp.default.svc.cluster.local;
> }
>
> limit_conn_zone $ssl_preread_server_name zone=perserver:10m;
>
> server {
> listen 443 reuseport so_keepalive=30s:30s:3 backlog=64999;
> proxy_pass $backend_svr:443;
> limit_conn perserver 255;
> ssl_preread on;
> }
The problem is limit_conn is executed at an earlier phase than ssl_preread.
The $ssl_preread_server_name variable is just empty at that moment.
You basically limit client connections by an empty variable.
--
Roman Arutyunyan
More information about the nginx
mailing list