Node.js 为开发环境快速设置代理,避免 url 中的 localhost for Mac OS X

Node.js Express setup proxy for development environment, avoid localhost in url for Mac OS X

我想设置我的开发环境,以便在我的浏览器中来自 www.dev.com 的所有请求都被路由到 localhost:8080

我在 /etc/host 中添加了 127.0.01 www.dev.com,但它没有进行端口转发。如果我去http://www.dev.com:8080/就可以,但是我want/need改用http://www.dev.com/,更接近实际生产环境

我该怎么做?我尝试了几个解决方案,如 nginx,但我不喜欢它,我更喜欢它 "scriptable",这样任何其他开发人员都可以直接使用它。我正在使用 Express.js 和 Node.

我通读了 Assigning a domain name to localhost for development environment on Mac OS X with node.js 但它实际上并没有解释端口转发部分。

您可以使用 Mac 端口转发。绑定到端口 80 需要 root 权限(低于 1024(?) 的任何东西都需要 root 权限)并且最好不要 运行 具有 root 权限的开发应用程序。

您可以使用pfctl端口转发

例如将端口 80 转发到 8080

echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" | sudo pfctl -ef -

来源:https://salferrarello.com/mac-pfctl-port-forwarding/

您也可以使用 ipfw(El Capitan 不可用)

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in