51

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

1

1 Answer 1

48

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.

Sign up to request clarification or add additional context in comments.

5 Comments

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.
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.
bt how to block other domains which address to server ip address?
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.
Great answer. But I would suggest against GoDaddy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.