LMSouq
server-admin Open

Nginx upstream prematurely closed connection while reading response header from upstream, for large requests

DI
Divya Konda
1 month ago
3 views
Problem Description
I am using nginx and node server to serve update requests. I get a gateway timeout when I request an update on large data. I saw this error from the nginx error logs : > 2016/04/07 00:46:04 [error] 28599#0: *1 upstream prematurely closed > connection while reading response header from upstream, client: > 10.0.2.77, server: gis.oneconcern.com, request: "GET /update_mbtiles/atlas19891018000415 HTTP/1.1", upstream: > "http://127.0.0.1:7777/update_mbtiles/atlas19891018000415", host: > "gis.oneconcern.com" I googled for the error and tried everything I could, but I still get the error. My nginx conf has these proxy settings: ## # Proxy settings ## proxy_connect_timeout 1000; proxy_send_timeout 1000; proxy_read_timeout 1000; send_timeout 1000; This is how my server is configured server { listen 80; server_name gis.oneconcern.com; access_log /home/ubuntu/Tilelive-Server/logs/nginx_access.log; error_log /home/ubuntu/Tilelive-Server/logs/nginx_error.log; large_client_header_buffers 8 32k; location / { proxy_pass http://127.0.0.1:7777; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; } location /faults { proxy_pass http://127.0.0.1:8888; proxy_http_version 1.1; proxy_buffers 8 64k; proxy_buffer_size 128k; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } I am using a nodejs backend to serve the requests on an aws server. The gateway error shows up only when the update takes a long time (about 3-4 minutes). I do not get any error for smaller updates. Any help will be highly appreciated. Node js code : app.get("/update_mbtiles/:earthquake", function(req, res){ var earthquake = req.params.earthquake var command = spawn(__dirname + '/update_mbtiles.sh', [ earthquake, pg_details ]); //var output = []; command.stdout.on('data', function(chunk) { // logger.info(chunk.toString()); // output.push(chunk.toString()); }); command.stderr.on('data', function(chunk) { // logger.error(chunk.toString()); // output.push(chunk.toString()); }); command.on('close', function(code) { if (code === 0) { logger.info("updating mbtiles successful for " + earthquake); tilelive_reload_and_switch_source(earthquake); res.send("Completed updating!"); } else { logger.error("Error...

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base