【问题标题】:Multiple domains, single node (express) app多域、单节点(快速)应用
【发布时间】:2012-02-25 21:20:51
【问题描述】:

我正在尝试创建简单的节点应用程序,用户可以在其中创建配置文件。默认情况下,他的个人资料的 url 应该是 - user1.myappname.com,但是当用户填写自定义域输入(并将此域指向我的应用程序 IP 地址)时,他应该能够使用这个自定义域,例如:

usercustomdomain.com => user1.myappname.com usercustomdomain.com/someaction => user1.myappname.com/someaction

这里有人有使用 express.js 实现此功能的经验吗?我的意思不仅是自定义域,还有子域。

谢谢 -M

【问题讨论】:

    标签: node.js express multiple-domains


    【解决方案1】:

    由于无论什么域,您的路径都是相同的,这很简单。从传递给您的 Express 路由方法的请求中获取主机名,然后执行您需要的任何查找。 Node 不关心域是什么,只要您的域有子域的 CNAME,并且自定义域指向与 myappname.com 相同的 IP 地址,node 将以相同的方式响应所有请求。

    例如,在您的 /someaction 路由中:

    app.get('/someaction', function(req,res) {
        hostName = req.header('host');
        // lookup info from database based on hostName, then output it ....
    });
    

    【讨论】:

    • 我想指出,cookie 不会跨域(让子域从主域访问 cookie),如果你没有设置路径来让这种情况发生。这可以轻松完成,但您必须能够信任子域,因为它们可以读取/窃取 cookie/会话信息并劫持它。
    • @japrescott 如果每个用户的管理都位于 www.myappname.com/admin 上会怎样?也许它解决了 cookie 的问题,因为它们不会与子域或自定义域发生冲突......
    • @MartinSnajdr,这本身不是问题。但是,如果您在 someother.myappname.com 上有其他网站并且不希望用户需要再次登录,则您需要信任该“其他”子域
    猜你喜欢
    • 2014-12-21
    • 2013-05-05
    • 2015-11-10
    • 2016-08-13
    • 1970-01-01
    • 2021-04-05
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多