How to assign a domain name to node.js server?

86,731

You do not assign a domain to a node.js server, instead you load your app onto a machine which has an ip adress, which in your case is 42.12.251.830:4000. You then need to make sure your app is listening on the correct port, which on most servers is 80

using express it's as simple as

var app = express()
  , server = require('http').createServer(app)
  , io = io.listen(server);

app.get('/', function(req, res) {
  res.sendfile('./public/index.html');
});
server.listen(80);

Getting a domain name to point to this ip address is an entirely separate matter. You need to make your name server point to the ip. Your name server will usually be the company you bought the domain name through, for instance GoDaddy is a Domain Name Server (DNS). So if you had a domain name with them, you would go on their site under DNS settings and change the ip adress. Your domain name will then point to your ip adress and should render your node.js app.

Share:
86,731
user2535056
Author by

user2535056

Updated on July 09, 2022

Comments

  • user2535056
    user2535056 almost 2 years

    I have a node.js server listening to port 4000, the URL to access the service is something like this:

    http://42.12.251.830:4000

    I bought a domain name

    www.mydomain.com

    How can I assign it to my server? First I used forwarding, but then I could not use location.hash anymore to add a chat channel to the URL. Then I used something like Header-Redirect. Now the service is reachable under mydomain.com , but not under www.mydomain.com. Moreover the domain name is not shown in the browser window. For my chat channel I need something like this:

    www.mydomain.com/#238husd4

  • David Small
    David Small over 8 years
    Old question. But I believe there is more to it than this. Since port 80 requires higher privileges, this alone won't work. Having my app listen to port 80 just gives me an unavailable webpage error.
  • Loourr
    Loourr over 8 years
    yeah on a local machine that port is blocked. Try port 3000 or something higher. But on a production server you'll want to use 80 or 443.
  • Arjun Kava
    Arjun Kava about 7 years
    bt how to block other domains which address to server ip address?
  • User
    User over 6 years
    The solution here addresses a solution for 1 app per IP address. However, some servers host multiple apps on a single server using a single IP address. You can't put them all on port 80.
  • Daan
    Daan about 6 years
    Great answer. But I would suggest against GoDaddy.