【发布时间】:2013-04-03 12:15:24
【问题描述】:
我正在尝试让我的 Node.js 支持的站点在一个服务于多个域的实例上运行。我有我的主域example.com,然后我有admin.example.com 和api.example.com,它们都有不同的路线等,我正在使用 Express。
到目前为止,我已经为子域添加了两条 A 记录,并且还在我的 CentOS 机器上的 /var/vhosts 中添加了两条条目。
127.0.0.1 api.example.com
127.0.0.1 admin.example.com
127.0.0.1 example.com
我知道 Express 有一个 express.vhost 方法,所以我已经尝试过了:
app.use(express.vhost('api.example.com', require('./lib/subdomains/api')))
app.use(express.vhost('admin.example.com', require('./lib/subdomains/admin')))
但这仍然只服务于我在下面导入的主要路线。我错过了什么?
【问题讨论】:
-
./lib/subdomains/api里面有什么内容? -
类似于this Gist 的事情我曾经尝试做的事情是
app.use(express.vhost('api.example.com', require('./lib/subdomains/api').app)) -
这是一个gist,对我来说很好用。您是在浏览器中还是使用 CLI 工具进行检查?如果是后者,它是否发送正确的
Host标头? -
在浏览器中。你的代码和我的一样,除了我在我的
app.configure下面这个require('./lib/routes')(app);app有可能发生冲突吗? -
/var/vhosts可以是 Apache 的东西吗?我刚刚意识到,通常,要创建新的主机条目,您需要编辑/etc/hosts。app不应该发生冲突,Node 具有模块范围,因此一个模块中的app与另一个模块中的app是分开的。