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

**URL:** <https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867>\
**Category:** NGINX\
**Tags:** load-balancer, tcp, packets, networking\
**Created:** [March 1, 2025, 10:25pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867 "2025-03-01T22:25:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paras](https://avatars.discourse-cdn.com/v4/letter/p/9de053/32.png) [@Paras](https://community.nginx.org/u/Paras)\
**Post date:** [March 1, 2025, 10:25pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/1 "2025-03-01T22:25:22Z")

</div>

**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

---

<div class="post-metadata">

**Author:** ![jon-velez](https://drob5swvtjqxg.cloudfront.net/user_avatar/community.nginx.org/jon-velez/32/223_2.png) [@jon-velez](https://community.nginx.org/u/jon-velez)\
**Post date:** [March 2, 2025, 6:12pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/2 "2025-03-02T18:12:38Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Paras](https://avatars.discourse-cdn.com/v4/letter/p/9de053/32.png) [@Paras](https://community.nginx.org/u/Paras)\
**Post date:** [March 3, 2025, 5:19am UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/3 "2025-03-03T05:19:41Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Damian\_Curry](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@Damian\_Curry](https://community.nginx.org/u/Damian_Curry)\
**Post date:** [March 7, 2025, 8:47pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/4 "2025-03-07T20:47:24Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![alessandro](https://drob5swvtjqxg.cloudfront.net/user_avatar/community.nginx.org/alessandro/32/4836_2.png) [@alessandro](https://community.nginx.org/u/alessandro)\
**Post date:** [July 3, 2025, 8:35pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/5 "2025-07-03T20:35:33Z")

</div>

Archiving due to inactivity

---

<div class="post-metadata">

**Author:** ![system](https://drob5swvtjqxg.cloudfront.net/user_avatar/community.nginx.org/system/32/19_2.png) [@system](https://community.nginx.org/u/system)\
**Post date:** [August 2, 2025, 8:36pm UTC](https://community.nginx.org/t/nginx-setup-as-tcp-load-balancer-between-server-and-devices-sending-psh-frequently-in-device-tcp-packets/867/6 "2025-08-02T20:36:19Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
