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 that could be useful in that case: Express Subdomain
How can I do it properly using that module? Maybe this module isn't so useful so which one should I use?
Rather than registering a new domain name, you can always create a subdomain using your existing domain name. A subdomain is an addon to your primary domain with its unique content. It is a separate part of your website that operates under the same primary domain name without you purchasing a new domain.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With