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