当 运行 node.js 落后于 mod_proxy 时如何获得 req.hostname
How to get req.hostname when running node.js behind apache with mod_proxy
我的 node.js 应用程序使用 req.hostname
将某些页面从 HTTP 重定向到 HTTPS,如下所示:
app.get('*', function(req, res){
res.redirect('https://' + req.hostname + req.url);
});
这在 运行 本地主机上的应用程序时非常有效。但是当应用程序在 mod_proxy 后面的服务器上运行时,req.hostname
不包含域名。相反,它只包含 localhost
。如何获取域名?
在您的 Apache 设置中,您必须添加:
ProxyPreserveHost On
这将告诉 apache 在向您的节点应用程序执行代理传递时保留主机名
我的 node.js 应用程序使用 req.hostname
将某些页面从 HTTP 重定向到 HTTPS,如下所示:
app.get('*', function(req, res){
res.redirect('https://' + req.hostname + req.url);
});
这在 运行 本地主机上的应用程序时非常有效。但是当应用程序在 mod_proxy 后面的服务器上运行时,req.hostname
不包含域名。相反,它只包含 localhost
。如何获取域名?
在您的 Apache 设置中,您必须添加:
ProxyPreserveHost On
这将告诉 apache 在向您的节点应用程序执行代理传递时保留主机名