curl works but not browser

January 1, 2018 444 views
Deployment Ubuntu 16.04

I created a simple nodejs app on the Digital Ocean server following the instructions from Digital Ocean. The code is

#!/usr/bin/env nodejs
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8080, '138.68.244.XXX');   //138.68.244.XXX is the IP of my Digital Ocean server
console.log('Server running at http://localhost:8080/');

After I started the app by the command "node hello.js"
I got output --> "Server running at http://localhost:8080/"

I was able to curl the URL->curl http://138.68.244.XXX:8080 to get "Hello World" on the server itself. However, when I tried http://138.68.244.XXX:8080 on a browser, I got "ERRCONNECTIONTIMED_OUT" error.

Please help.

Thank you!

1 Answer

If the app is accessible locally on the server itself but not on the Internet, the first thing I would check is if a firewall is blocking port 8080. If you are using the DigitalOcean One-Click app, the "ufw" firewall is enabled, and all ports except for 22, 80, and 443 are blocked by default.

To open port 8080, run:

  • sudo ufw allow 8080
Have another answer? Share your knowledge.