How to create subdomain for user in node.js

后端 未结 1 1485
遥遥无期
遥遥无期 2021-02-06 05:52

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

1条回答
  •  不思量自难忘°
    2021-02-06 06:41

    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.

    0 讨论(0)
提交回复
热议问题