Hello!
Background
We've implemented a lightweight APIGW on nginx 1.9.9 using openresty packages to customize the handling/proxying logic. We have dozens clients that are able to leverage this implementation just fine.
The Issue
We have one client that is experiencing some weird issues when trying to access our APIGW. This is only for certain requests coming from their app. We strongly believe it's a malformed request from their side but we're trying to help them find the issue. The behavior we see on our side is quite strange as well. The error.log will show a GET request that timed out. The access.log shows a POST request for the same request. Below are the two entries; the response time always seems to be around 5 seconds; but lowest timeout explicitly set in our configuration is 10 seconds.
Error log entry
2016/05/18 11:34:51 [info] 13516#0: *304290 client prematurely closed connection, client: xx.xxx.xx.xxx, server: , request: "GET /hidden_uri HTTP/1.1", host: "blahblahblah.com"
Access log entry
|LOCATION:GATEWAY|CN:NA|SSLPROTOCOL:TLSv1|SSLCIPHER:ECDHE-RSA-AES256-SHA|SERVICE:NA|VERSION:1|CLIENT:NA|BACKEND:|HTTPMETHOD:POST|ACCEPT:application/json; v=4|OPERATION:NA|RESPONSETIME:5005|STATUS:400|SEVERITY:NA|STATUSCODE:NA|STATUSMESSAGE:NA|CLIENTIPADDRESS:xx.xxx.xx.xxx|CLIENTMESSAGEID:NA|MESSAGEID:|REQUESTBODYSIZE:0|RESPONSEBODYSIZE:0
Configuration for access log
'$timestamp|LOCATION:$location_name|CN:$cn|SSLPROTOCOL:$ssl_protocol|SSLCIPHER:$ssl_cipher|SERVICE:$service_name|VERSION:$version|CLIENT:$upstream_api_key|BACKEND:$route_location|HTTPMETHOD:$upstream_method|ACCEPT:$accept|OPERATION:$operation|RESPONSETIME:$request_time_ms|STATUS:$status|SEVERITY:$severity|STATUSCODE:$status_code|STATUSMESSAGE:$status_message|CLIENTIPADDRESS:$clientip|CLIENTMESSAGEID:$clientmessageid|MESSAGEID:$messageid|REQUESTBODYSIZE:$content_length|RESPONSEBODYSIZE:$body_bytes_sent';