Node.js-如何从url中删除端口?
我使用node.js和socket.io 我的应用程序在端口3000上运行。应用程序从url开始:mydomain.com:3000/ 我想从mydomain.com运行应用程序-我想从url中删除端口Node.js-如何从url中删除端口?,url,node.js,port,socket.io,Url,Node.js,Port,Socket.io,我使用node.js和socket.io 我的应用程序在端口3000上运行。应用程序从url开始:mydomain.com:3000/ 我想从mydomain.com运行应用程序-我想从url中删除端口 在何处以及如何设置此设置?首先,您可能希望从本地主机“127.0.0.1”运行应用程序。只需在node.js设置中省略端口,即可删除该端口。默认情况下,web浏览器在端口80上查找服务器。如果出于某种原因希望服务器在端口3000上运行,则必须将其包含在URL中 找到您的呼叫并将端口从3000更改
在何处以及如何设置此设置?首先,您可能希望从本地主机“127.0.0.1”运行应用程序。只需在node.js设置中省略端口,即可删除该端口。默认情况下,web浏览器在端口80上查找服务器。如果出于某种原因希望服务器在端口3000上运行,则必须将其包含在URL中 找到您的呼叫并将端口从
3000
更改为80
。不要忘记,为了在Linux系统上绑定到小于1024个端口,您必须使用CAP\u NET\u BIND\u服务
功能运行程序(有关详细信息,请参阅capabilities(7)
)root
权限将包含此权限和其他权限。如果您想像您描述的那样在“没有端口”的情况下运行它,您实际上将在端口80上运行它。没有root权限,您无法执行此操作
所以不是
node server.js
你需要
sudo node server.js
这是假设您在试图运行它的计算机上拥有sudo权限。否则你会遇到每一个问题。这就是sarnold想告诉你的。我就是这样做的,因为我也在使用apache。我不能使用端口80,因为它保留了它。所以,我设置了一个代理通行证。我将/src文件夹设置为忽略
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/www.mysite.com"
ServerName local.www.mysite.com
ServerAlias local.www.mysite.com
ProxyPass /src !
ProxyPass / http://local.www.mysite.com:3000/
ProxyPassReverse / http://local.www.mysite.com:3000/
</VirtualHost>
DocumentRoot“/Library/WebServer/Documents/www.mysite.com”
ServerName local.www.mysite.com
ServerAlias local.www.mysite.com
ProxyPass/src!
ProxyPass/http://local.www.mysite.com:3000/
ProxyPassReverse/http://local.www.mysite.com:3000/
没有解决方案吗?它必须将应用程序设置为在此端口上的服务器上运行,而不使用url。对不起,我误解了。我不相信有一种方法可以在端口3000上运行而不将其包含在URL中。我可能错了。我试图将端口设置为80,但应用程序被丢弃。这是禁止的,“申请被取消了”?这是什么意思?您是否以root用户身份运行它?您可以吗?Conosle写入行:info-socket.io已启动,warn-error已引发:error:EACCES,权限被拒绝以root
身份运行命令可以解决问题,但这会使您的站点非常不安全。正确的解决方案是使用反向代理,然后将一个目录(如“mydomain.com/app”)绑定到端口3000。在端口80上运行node.js服务器应用程序被认为是不安全的。此外,搜索会发现:嗨,我想做完全相同的事情,但失败了。在错误日志中显示[Fri Nov 29 18:45:45 2013][error](111)连接被拒绝:代理:HTTP:尝试连接到my.IP.addr.0:3000(www.mydomainname.com)失败
。您正在使用哪个代理模块(http、ftp、ajp等)?嘿,Charles-我正在使用代理的默认apache设置。为了让代理工作,我唯一做的改变就是在我的vhosts中添加了这一点。我的apache配置已加载所有代理模块。apache正在我的配置中监听端口80。您没有加载任何模块吗?如何在Windows systemDown voting中运行,因为在端口80上运行node.js应用程序被认为是不安全的。