繁体   English   中英

将域重定向到IP和端口

[英]Redirect a domain to a ip and port

我有一个node.js服务器侦听端口4000

如何将我的域名:www.mydomain.com重定向到IP和端口? 域提供程序仅允许在重定向字段中没有portnumber的ip地址。 如果我进行URL重定向,则不显示我方的名称。

请让我知道如何将其重定向到我的域名?

121.12.12.123:4000    redirect to   www.mydomain.com

HTTP请求通常在端口80上。当您键入域并且未指定端口时,它会自动连接到端口80.您有几个选项。 您可以以root身份运行Node.js服务器并让它在端口80上侦听,但不建议这样做。

您还可以在端口80上设置Nginx并使用它来反转对正在侦听端口4000的Node.js进程的代理请求,但这会在您的堆栈中引入另一个组件来管理并为每个请求引入一些开销。

我更喜欢处理这个问题的方法是在iptables中设置重定向(假设您正在使用Linux)。

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 4000

这会将所有流量从端口80重定向到端口4000,您正在侦听Node.js进程。

这允许您以非特权用户身份运行Node.js进程,但仍然在端口80上应答请求。

完成后,您可以简单地将域指向服务器的IP地址,并且正常的Web请求应该可以正常工作。 确保首先在任何防火墙上打开端口80。

试试这段代码

var httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://localhost:4000'}).listen(80);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM