title: Long request returns with empty response after 120 seconds, caused by Network Load Balancer
body: <p>I have a GKE cluster with 2 nodes, with a service of type LoadBalancer.
  When I call the service internally a long request will not timeout after 120 seconds.
  But if I call the external IP of the Network Load Balancer that forwards to the internal service, I get a "Empty reply from server" response.</p>
  
  <p>External call example:</p>
  
  <pre><code>curl -v "http://&lt;public-ip&gt;/longResponse"
  *   Trying &lt;public-ip&gt;...
  * TCP_NODELAY set
  * Connected to &lt;public-ip&gt; (&lt;public-ip&gt;) port 80 (#0)
  &gt; GET /longResponse HTTP/1.1
  &gt; Host: &lt;public-ip&gt;
  &gt; User-Agent: curl/7.54.0
  &gt; Accept: */*
  &gt;
  * Empty reply from server
  * Connection #0 to host &lt;public-ip&gt; left intact
  curl: (52) Empty reply from server
  </code></pre>
  
  <p>Internal call example:</p>
  
  <pre><code>/ # wget -O - -S &lt;service-name&gt;/longResponse
  Connecting to location-service (10.3.255.181:80)
    HTTP/1.1 200 OK
    Access-Control-Allow-Origin: *
    Content-Type: application/json
    Content-Length: 15
    Date: Thu, 28 Feb 2019 10:31:14 GMT
    Connection: close
  
  -                    100% |*********************************************************************************************************************************************************************************************************************|    15  0:00:00 ETA
  / # 
  </code></pre>
  
  <p>I've tried to find documentation for request or socket timeout in the load balancer level, but I didn't encounter anything. Any idea?</p>
  
  <p>Thanks.</p>