我有一台node.js服务器在监听端口4000
如何将域名: www.mydomain.com重定向到ip和端口?域提供商仅允许在重定向字段中使用没有端口号的ip地址。如果我执行URL重定向,则不会显示我那一侧的名称。
请告诉我如何将其重定向到我的域名?
121.12.12.123:4000 redirect to www.mydomain.com发布于 2013-07-05 05:11:29
HTTP请求通常通过端口80传入。当您键入域但未指定端口时,它会自动连接到端口80。你有几个选择。您可以以根用户身份运行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。
发布于 2015-10-16 23:56:40
试试这段代码
var httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://localhost:4000'}).listen(80);https://stackoverflow.com/questions/17478087
复制相似问题