从NodeJS请求获取主机
Get host from NodeJS request
我有一个基本的http服务器,它运行在多个域指向的服务器上。我需要找到请求的主机(请求来自的域)。
require("http").createServer(function (req, res) {
console.log(req.headers.host);
res.end("Hello World!");
}).listen(9000);
req.headers.host
的值是127.0.0.1:9000
,而不是域名(example.com
左右)。
如何从请求对象获取域名?
节点服务器通过nginx
进行代理。配置如下:
server {
listen 80;
server_name ~.*;
location / {
proxy_pass http://127.0.0.1:9000;
}
}
问题是nginx中的proxy_pass
将主机头重写为重写中引用的任何主机。如果要覆盖该行为,可以使用proxy_set_header
手动覆盖传出代理请求的主机标头;
server {
listen 80;
server_name ~.*;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $http_host;
}
}
这里有更详细的解释。
相关文章:
- 使用 javascript 从本地主机服务获取数据
- 获取主机 URL + 目标 URL 的时间
- 从服务器/主机获取HTML代码或显示广告代码
- 如何在angular JS中获取基本主机
- 单击时获取 href 的顶部主机名
- javascript 获取文件主机的主机名
- 在节点/快递中获取客户端主机名
- 如何在实用程序文件中获取已启动的快速应用程序的服务器主机和端口
- 从新创建的窗口中获取位置主机名
- 通过JS regex获取具有/en/的主机名
- Node.js-在AmazonEC2上获取主机IP地址
- 使用regex获取带点的主机名
- 使用本地主机/同一主机的http模块获取请求
- 获取使用主机名获取URL的脚本
- 从请求脚本的位置获取主机
- 客户端系统主机名未使用request.getRemoteHost()获取
- 如何获取来自不同主机的表的特定单元格的值
- 从NodeJS请求获取主机
- 通过Angular从Firebase主机获取JSONP文件
- 主干不从不同的主机获取JSON