我想在我的应用程序的username.domain.com上分享一些用户信息。用户创建帐户后,子域名应该可用。
我找到了很好的模块,在这种情况下很有用:Express Subdomain
如何正确使用该模块?也许这个模块不是那么有用,我应该使用哪一个?
答案 0 :(得分:10)
正如我在OP评论中提到的,在Node前面使用Nginx webserver是非常好的选择,因为这是一种安全的方式来监听80端口。您还可以使用Nginx更有效地提供静态文件(脚本,样式,图像,字体等),以及在单个服务器中拥有多个站点。
关于您的问题,使用Nginx,您可以同时监听example.com
及其所有子域,然后将子域作为自定义请求标头(X-Subdomain
)传递给Node。
<强> 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);
这是一起使用Nginx和Node的简短示例。您可以通过解释here查看更详细的示例。