Node.js 根据使用的域名重定向到一个 ip:port

Posted

技术标签:

【中文标题】Node.js 根据使用的域名重定向到一个 ip:port【英文标题】:Node.js redirect to an ip:port based on the used domain name 【发布时间】:2017-06-01 16:00:12 【问题描述】:

目前我有一个指向我的 Node.js 服务器的域名,该服务器正在侦听默认的 http 端口 80。

DNS 记录:

www.domain.com --> my_public_ip

但我想设置第二个可以通过第二个域访问的 Node.js 服务器。所以两台服务器都可以监听不同的端口。

DNS 记录:

www.domain1.com --> my_public_ip:3001

www.domain2.com --> my_public_ip:3002

但我无法在 DNS 记录中设置带有端口的 IP 地址,因为我绑定到单个端口 80。所以我正在考虑一条不同的路线。如果我设置第三个 Node.js 服务器来检查域名并在此基础上将用户重定向到正确的服务器会怎样。

DNS 记录:

www.domain1.com --> my_public_ip

www.domain2.com --> my_public_ip

Node.js 服务器正在监听 80 端口并检查域名:

if (www.domain1.com) --> redirect to my_public_ip:3001

if (www.domain2.com) --> redirect to my_public_ip:3002

这可能吗?你能帮我吗?我在网上搜索了很多,但我没有找到一个直截了当的答案。您是否知道或有针对这种情况的任何文档/代码示例?

我希望这很清楚,感谢您的宝贵时间!

【问题讨论】:

【参考方案1】:

你可以这样做,但我建议你使用 nginx,它真的会容易得多。如果您真的想通过 nodejs 来实现,请尝试使用 https://github.com/OptimalBits/redbird 或 https://github.com/nodejitsu/node-http-proxy 之类的库

【讨论】:

以上是关于Node.js 根据使用的域名重定向到一个 ip:port的主要内容,如果未能解决你的问题,请参考以下文章

通过.htaccess从HTTPS重定向到IP地址到域名

泛域名解析,域名重定向的问题!

text Nginx:将IP地址重定向到域名

mac下ip地址重定向

Nginx 配置旧域名重定向到新域名

根据IP将用户重定向到子域