I\'d like to share some user information at username.domain.com at my application. Subdomain should be available after user create his account.
I have found nice module
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.