How to create subdomain for user in node.js How to create subdomain for user in node.js express express

How to create subdomain for user in node.js


As I mentioned in OP comments, using Nginx webserver in front of Node would be very good option, since this is a secure way to listen 80 port. You can also serve static files (scripts, styles, images, fonts, etc.) more efficiently, as well as have multiple sites within a single server, with Nginx.

As for your question, with Nginx, you can listen both example.com and all its subdomains, and then pass subdomain to Node as a custom request header (X-Subdomain).

example.com.conf:

server {    listen          *:80;    server_name     example.com   *.example.com;    set $subdomain "";    if ($host ~ ^(.*)\.example\.com$) {        set $subdomain $1;    }    location / {        proxy_pass          http://127.0.0.1:3000;        proxy_set_header    X-Subdomain     $subdomain;    }}

app.js:

var express = require('express');var app = express();app.get('/', function(req, res) {    res.end('Subdomain: ' + req.headers['x-subdomain']);});app.listen(3000);

This is a brief example of using Nginx and Node together. You can see more detailed example with explanation here.