2013-12-13 15:10:20 |
Edward Hope-Morley |
description |
The wsgi server used in most if not all openstack services currently has keepalive=True by default thus keeping connections open after each request. This can cause problems when using load balancers in front of these services e.g. connections for requests that take a long time can get closed in the load balancers once a timeout has expired. This can then cause issues if a client performs a request using the same source port as a previous request that is not closed in the LB but still open in the server due to TCP packet sequecing in the LB and the new client not expecting the connection to already be open. So, it would be useful to be able to disable wsgi keepalive. |
The wsgi server used in most if not all openstack services currently has keepalive=True by default thus keeping connections open after each request. This can cause problems when using load balancers in front of these services since connections for requests that take a long time can get closed/timeout in the load balancers. This can then cause issues for clients that persist their connections e.g. if a client performs a request using the same source port as a previous request that is not closed in the LB but still open in the server due to TCP packet sequencing in the LB and the new client not expecting the connection to already be open. So, it would be useful to be able to either disable wsgi keepalive or set the tcp_keealive timeout value on the wsgi socket like in cinder:
https://github.com/openstack/cinder/blob/master/cinder/wsgi.py#L169 |
|