<div dir="ltr">I would like to be able to proxy non persistent client http connections to persistent upstream connections on a Linux system, both to reduce the number of connections and the upstream latency.<div><br></div><div>I have experimented with keepalive and proxy_pass.</div><div><br></div><div>To observe performance I used log_format upstreamlog '[$time_local] $status $connection $connection_requests $request_time'; and $ lsof -Pni</div><div><br></div><div>What I think I have found is that some of the time persistent upstream connections are reused, but very often they are not. I believe the occasions where upstream connections are reused are possible because by chance the client connection has been reused.</div><div><br></div><div>Is there a way to make this work?</div><div><br></div><div>Regards</div><div><br></div><div>Example configuration</div><div><br></div><div><div>log_format upstreamlog '[$time_local] $status $connection $connection_requests $request_time';</div><div><br></div><div>upstream google {</div><div>    server <a href="http://google.com:80">google.com:80</a>;</div><div>    keepalive 10;</div><div>}</div></div><div><br></div><div>upstream yahoo {</div><div>    server <a href="http://yahoo.com:80">yahoo.com:80</a></div><div>    keepalive 10;</div><div>}</div><div><br></div><div>server {</div><div>    listen 8080;</div><div>    server_name 10.0.0.1;</div><div>    proxy_connect_timeout 500ms;</div><div>    proxy_send_timeout 500ms;</div><div>    proxy_read_timeout 500ms;</div><div>    send_timeout 500ms;</div><div><br></div><div>    location /status {</div><div>        stub_status on;</div><div>    }</div><div><br></div><div>    location /google {</div><div>        proxy_pass <a href="http://www.google.com">http://www.google.com</a>;</div><div>        proxy_http_version 1.1;</div><div>        proxy_set_header Connection "";</div><div>        proxy_set_header Host <a href="http://google.com">google.com</a>;</div><div>       access_log /var/log/google.log upstreamlog;</div><div>    }</div><div><br></div><div>    location /yahoo {</div><div>        proxy_pass <a href="http://www.yahoo.com">http://www.yahoo.com</a>;</div><div>        proxy_http_version 1.1;</div><div>        proxy_set_header Connection "";</div><div>        proxy_set_header Host <a href="http://yahoo.com">yahoo.com</a>;</div><div>       access_log /var/log/yahoo.log upstreamlog;</div><div>    }   </div><div>}</div><div><br></div></div>