如何在节点.js中为用户创建子域

How to create subdomain for user in node.js

本文关键字:用户 创建 节点 js      更新时间:2023-09-26

我想在我的应用程序 username.domain.com 分享一些用户信息。子域应在用户创建其帐户后可用。

我找到了在这种情况下可能有用的好模块:快速子域

如何使用该模块正确执行此操作?也许这个模块不是那么有用,所以我应该使用哪一个?

正如我在OP评论中提到的,在Node前面使用Nginx网络服务器将是非常好的选择,因为这是一种监听80端口的安全方式。您还可以使用Nginx更有效地提供静态文件(脚本,样式,图像,字体等),以及在单个服务器中拥有多个站点。

至于你的问题,使用Nginx,你可以同时监听example.com及其所有子域,然后将子域作为自定义请求头(X-Subdomain)传递给Node。

例子.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;
    }
}

应用.js:

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

这是同时使用 Nginx 和 Node 的简短示例。您可以在此处查看更详细的示例和解释。