node.js - 使用mod_proxy在apache后面运行node.js时如何获取req.hostname

标签 node.js express 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 应用程序进行代理传递时保留主机名

关于node.js - 使用mod_proxy在apache后面运行node.js时如何获取req.hostname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574786/

相关文章:

javascript - 如何使用 Node.js 轻松地将变量传递到 View

apache - Tomcat、Mod_rewrite、Mod_proxy : how do I keep the original URI path in a proxied request?

子域的 Apache 2.2 和 tomcat 重定向

javascript - 如何在nodeJS Express中使用next干净地退出二级函数?

node.js - 打开 chrome-devtools ://URL from script/command line, 不是通过复制粘贴

node.js - 使用 node.js/express 自动 HTTPS 连接/重定向

mysql - 与 Node 后端路由 react View

node.js - 在 Express/Connect 中解析签名 cookie 的便捷方法?

node.js - 表达和压缩,找不到我犯的错误:-(

java - 代理后面的 Servlet : getting un-proxied URL