Node.js Express为开发环境设置代理,避免在Mac OS X的url中使用localhost

Node.js Express为开发环境设置代理,避免在Mac OS X的url中使用localhost,node.js,macos,portforwarding,Node.js,Macos,Portforwarding,我想设置我的开发环境,以便我的浏览器中来自www.dev.com的所有请求都被路由到localhost:8080 我在我的/etc/host中添加了127.0.01 www.dev.com,但它不做端口转发。如果我转到http://www.dev.com:8080/它可以工作,但我想/需要使用http://www.dev.com/相反,这更接近实际的生产环境 我该怎么做?我尝试了几种类似nginx的解决方案,但我不喜欢它,我更喜欢它是“可编写脚本的”,这样其他任何开发人员都可以直接使用它。我将E

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

我在我的/etc/host中添加了
127.0.01 www.dev.com
,但它不做端口转发。如果我转到
http://www.dev.com:8080/
它可以工作,但我想/需要使用
http://www.dev.com/
相反,这更接近实际的生产环境

我该怎么做?我尝试了几种类似nginx的解决方案,但我不喜欢它,我更喜欢它是“可编写脚本的”,这样其他任何开发人员都可以直接使用它。我将Express.js与Node一起使用


我通读了一遍,但实际上没有解释端口转发部分。

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

您可以使用
pfctl
端口转发

e、 g.至转发端口80至8080

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

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


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

您可以使用
pfctl
端口转发

e、 g.至转发端口80至8080

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

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


为什么不让您的节点应用程序在端口80而不是8080上侦听(尽管它确实需要以root身份运行您的节点应用程序)?因为以root身份运行应用程序是不好的,因为其行为可能与生产不同。事实上,这是一种非常简单且不好的方法。例如,编写文件可能以root身份工作,但在生产环境中不起作用,因此,在它进入生产环境之前,您甚至不会知道存在问题。确实,尽管任何以root身份运行的合理应用程序都应该在完成其所需的root权限后立即放弃权限(例如,监听端口80)。但建议的答案是一个更好的解决方案。在您的生产环境中,端口80上也必须监听一些内容,因此,如果您希望与生产环境中运行的内容非常匹配,您可能必须设置非常类似的内容(反向代理?)。为什么不让您的节点应用程序在端口80而不是8080上侦听(尽管它确实需要以root用户身份运行您的节点应用程序)?因为以root用户身份运行应用程序是不好的,因为其行为可能与生产环境不同。实际上,这是一种非常简单且不好的方法。例如,编写文件可能以root用户身份工作,但在生产环境中不起作用,因此,在它进入生产环境之前,您甚至不知道有问题。是的,尽管任何合理的应用程序以root身份运行应该在执行了需要root权限的操作后立即删除权限(例如,侦听端口80)。但建议的答案是一个更好的解决方案。在您的生产环境中,端口80上也必须有监听功能,因此,如果您希望与生产上运行的功能非常匹配,则可能必须设置非常类似的功能(反向代理?)。不错的解决方案,尽管
ipfw
不再存在(我认为,自从El Capitan以来)
echo“rdr将inet协议tcp从任何端口传送到任何端口80->127.0.0.1端口8080”| sudo pfctl-ef-
非常适合约塞米蒂!:)不错的解决方案,尽管
ipfw
已经不存在了(我认为,自从El Capitan以来)。
echo“rdr将inet协议tcp从任何端口传送到任何端口80->127.0.1端口8080”| sudo pfctl-ef-
非常适合约塞米蒂!)