Javascript 从NodeJS请求获取主机

Javascript 从NodeJS请求获取主机,javascript,node.js,http,Javascript,Node.js,Http,我有一个基本的http服务器,它运行在多个域指向的服务器上。我需要找到请求的主机(请求来自的域) 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; } } 问题是ng

我有一个基本的http服务器,它运行在多个域指向的服务器上。我需要找到请求的主机(请求来自的域)

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\u pass
会将主机头重写为重写中引用的任何主机。如果要覆盖该行为,可以使用
proxy\u set\u header
手动覆盖传出代理请求的主机头

server {
   listen 80;
   server_name ~.*;
   location / {
       proxy_pass http://127.0.0.1:9000;
       proxy_set_header Host $http_host;
   }
}

有更详细的解释。

节点服务器是如何代理的?nginx?@JoachimIsaksson完全正确。@JoachimIsaksson别忘了添加一个答案。问题解决了。:-)
server {
   listen 80;
   server_name ~.*;
   location / {
       proxy_pass http://127.0.0.1:9000;
       proxy_set_header Host $http_host;
   }
}