0

I get these three lines of errors when I refresh my page:

2020/10/07 16:38:55 [error] 315270#315270: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 66.249.66.221, server: akadjg.com, request: "GET /robots.txt HTTP/1.1", upstream: "http://127.0.0.1:3000/robots.txt", host: "akadjg.com"
2020/10/07 16:38:58 [error] 315270#315270: *9 connect() failed (111: Connection refused) while connecting to upstream, client: 71.218.84.112, server: akadjg.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "akadjg.com"
2020/10/07 16:38:58 [error] 315270#315270: *9 connect() failed (111: Connection refused) while connecting to upstream, client: 71.218.84.112, server: akadjg.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:3000/favicon.ico", host: "akadjg.com", referrer: "http://akadjg.com/"

And running "netstat -plant" gives:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      315140/mongod       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      -                   
tcp        0      0 157.245.172.144:42856   172.67.168.253:80       TIME_WAIT   -                   
tcp        0    612 157.245.172.144:22      71.218.84.112:52609     ESTABLISHED -                   
tcp        0      0 157.245.172.144:80      66.249.66.93:37947      TIME_WAIT   -                   
tcp        0      0 157.245.172.144:22      71.218.84.112:51914     ESTABLISHED -                   
tcp        0      0 127.0.0.1:27017         127.0.0.1:55302         ESTABLISHED 315140/mongod       
tcp        0      0 127.0.0.1:55302         127.0.0.1:27017         ESTABLISHED 315186/node /home/d 
tcp6       0      0 :::80                   :::*                    LISTEN      -                   
tcp6       0      0 :::8080                 :::*                    LISTEN      315186/node /home/d 
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 :::443                  :::*                    LISTEN      -                

And in /etc/nginx/sites-available/akadjg.com I have:

server {
    listen 80;
    listen [::]:80;

    root /var/www/akadjg.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name akadjg.com www.akadjg.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/akadjg.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/akadjg.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

Where am I going wrong? I had this server working a few years ago on Ubuntu 14; this iteration is on Ubuntu 20. I think it's configured the same but maybe I've done something wrong when following the setup tutorials on DigitalOcean.

Oh, and my server.js file is:

var express = require('express') //Require express for middleware use
const app = express()
var http = require('http').createServer(app)
var io = require('socket.io')(http) //IO is the server

var bodyParser = require('body-parser')

var MongoClient = require('mongodb').MongoClient
var assert = require('assert')
var mongoose = require('mongoose')
mongoose.set('debug', true)

var url = 'mongodb://localhost:27017/test'

//BASICS
app.use(express.static(__dirname + "/served")) //Serve static files

app.get('/', function(req, res){
  res.sendFile('./index.html');
});

io.on('connection', function(socket){
  // socket.on('chat message', function(msg){
    // io.emit('chat message', msg);
  // });
  console.log("A user connected: ", socket.id)
});

http.listen(8080, function(){
  console.log('listening on *:8080');
});

//HANDLE USER LOGIN:
app.use(bodyParser.json())       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()) // to support URL-encoded bodies

mongoose.connect(url)
var db = mongoose.connection
db.on('error', console.error)
var User
db.once('open', function() {
  var userSchema = mongoose.Schema({
    username: String,
    level: Number,
    onePoRank: Number,
    twoPoRank: Number,
    type: String,
    tutDone: Boolean
  })

  // userSchema.statics.findOne = function(id, callback){
  //   return this.findOne({ _id: new RegExp(id, 'i') }, callback);
  // }

  User = mongoose.model('User', userSchema)

  // db.close()
})

app.post('/menu', function(req, res){ // Save new user or load existing one, and send that data back to the client.
  var username = req.param('username')
  console.log('username "'+username+'" parsed from form')

  //check the database for a user with that name:
  User.findOne({username: username}, function(err, user){
    if (err) {console.log("The user search caused an error")}
    if (user === null) {
      console.log("No user by name %s found--creating new user", username)
      var newUser = new User({username: username, level:0, onePoRank:0, twoPoRank: 0, type: 'human'})
      newUser.save(function (err, newUser) { //Add the new user to the database
        if (err) return console.error(err);
        console.log("New user %s saved to database", username)
        res.json(newUser)
      })
    } else { //User was found in the database
      console.log("User %s found.", username)
      res.json(user)
    }
  })

  db.once('close', function(){console.log("database closed.")})
  // res.sendFile('./menu.html', {root: __dirname+"/served"})
});

app.post('/user', function(req, res){ // Update the user in the database:
  var what = req.param('what')
  var username = req.param('user').username
  // var username = req.param('username')
  // console.log('username "'+username+'" parsed from form')

  User.findOne({username: username}, function(err, user){
    if (err) {console.log("The user search caused an error")}
    if (user === null) {
      console.log("No user by name %s found. That was unexpected.", username)
    } else {
      console.log("User %s found. Updating.", username)
      user[what] = req.param('user')[what]
      user.save(function(err) {
        if (err) throw err
        console.log('User successfully updated!')
      });
    }
  })

  res.json({'a':0}) //just to prevent an empty response error
});
4
  • Does this answer your question? What causes the 'Connection Refused' message? Oct 7 '20 at 17:36
  • You told nginx to connect to your Node server on localhost port 3000 but you have it listening on port 8080. Oct 7 '20 at 17:37
  • OK, I figured it out, I had to replace 3000 with 8080 in /etc/nginx/sites-available/akadjg.com, this question can be closed.
    – DJG
    Oct 7 '20 at 18:12
  • 1
    You can just click the big button, then :) Oct 7 '20 at 18:29
0

I had to replace 3000 with 8080 in /etc/nginx/sites-available/akadjg.com.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.