NGINX setup as TCP Load Balancer between server and devices, sending PSH frequently in Device TCP packets

What I’m trying to do:
It seems NGINX is sending PSH even if my backend server didn’t

Where I’m stuck:
Because it sends PSH frequently, my devices on TCP malfunction

What I’ve already tried:
Tried TCP_nodelay off but this didn’t work. Need something so NGINX send PSH to the devices TCP packets only when my backend server sends the PSH

Do you have an example packet capture of this traffic?

Hard to go off just by your description. Is NGINX initiating traffic when no requests coming in and is randomly sending a push?

Thanks, I will try to arrange the logs - meanwhile let me try to describe more
a) Setup is Device – LB (NG) – Backend Server
b) Case 1 - LB is OFF - Backend server sends TLS certificate in two packets 1360 + 872 and PSH bit is set in packet two
c) Case 2 - when LB is ON - LB takes the TLS certificate from server and then breaks into four packets 660,660, 660, 251
In Case 1 when LB is OFF - the PSH bit is sent in last packet i.e. Packet 2 - 872 lenth
In Case 2 when LB is ON - two packets of 660 sent immediately (within 16 micro seconds) and PSH bit is set in second packet
My question here is why LB is sending PSH bit in second packet and not in the last packet.
How can I tell LB (load balancer - NGINX) to send PSH in the same segment as received from the backend server and not intermediate PSH.

Does this make more sense?

It might be helpful to have the full configuration you are using and the high level use case you are expecting as the outcome. Is NGINX proxying the PSH traffic to a single node? When you mention the behavior “when LB is OFF”, is that when you are send the connection directly to the backend node without NGINX as part of the network path or is it NGINX configured with a single backend server?