Node.js - 如何从 url 中删除端口? [关闭]
Posted
技术标签:
【中文标题】Node.js - 如何从 url 中删除端口? [关闭]【英文标题】:Node.js - How can I remove the port from the url? [closed] 【发布时间】:2012-03-20 13:19:18 【问题描述】:我使用 node.js 和 socket.io。
我的应用程序在 3000 端口上运行。应用程序从 url 开始:mydomain.com:3000/
我想从 mydomain.com 运行应用程序 - 我想从 url 中删除端口。
我可以在哪里以及如何设置此设置?
【问题讨论】:
搜索也会出现这种情况:***.com/questions/14303690/… 【参考方案1】:我就是这样做的,因为我也在使用 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>
【讨论】:
嗨,我想做同样的事情,但失败了。在错误日志中显示[Fri Nov 29 18:45:45 2013] [error] (111)Connection refused: proxy: HTTP: attempt to connect to my.IP.addr.0:3000 (www.mydomainname.com) failed
。您正在使用哪个代理模块(http、ftp、ajp 等)?
嘿查尔斯-我正在使用默认的 apache 代理设置。我为使代理工作而进行的唯一更改是我的虚拟主机中的这一点。我的 apache 配置加载了所有代理模块。并且 apache 正在我的配置中侦听端口 80。您没有加载任何模块吗?【参考方案2】:
如果你想像你描述的那样在“没有端口”的情况下运行它,你实际上将在端口 80 上运行它。没有 root 权限你不能这样做。
所以不是
node server.js
你需要
sudo node server.js
这是假设您在尝试运行它的机器上拥有 sudo 权限。否则你会遇到 EACCESS 问题。这就是 sarnold 想要告诉你的。
【讨论】:
如何在Windows系统中运行 投反对票,因为在 80 端口上运行你的 node.js 应用程序被认为是不安全的。【参考方案3】:找到您的server.listen
呼叫并将端口从3000
更改为80
。不要忘记您必须使用CAP_NET_BIND_SERVICE
功能运行程序(有关详细信息,请参阅capabilities(7)
)才能绑定到Linux 系统上小于1024 的端口。 root
权限将包含此权限和其他权限。
【讨论】:
我尝试将端口设置为 80 应用程序被丢弃。这是禁止的。 “应用程序被删除”?那是什么意思?你是以root
运行它吗?可以吗?
Conosle 写入行:信息 - socket.io 已启动,警告 - 引发错误:错误:EACCES,权限被拒绝
以root
身份运行命令可以解决问题,但这会使您的网站极度不安全。正确的解决方案是使用反向代理,然后绑定一个目录,例如“mydomain.com/app”到端口 3000。
在端口 80 上运行 node.js 服务器应用程序被认为是不安全的。【参考方案4】:
首先,您可能希望从本地主机“127.0.0.1”运行应用程序。您可以通过在 node.js 设置中省略它来删除端口。默认情况下,Web 浏览器在端口 80 上查找服务器。如果您出于某种原因希望服务器在端口 3000 上运行,则必须将其包含在 URL 中。
【讨论】:
有没有解决办法?它必须将应用程序设置为在此端口上的服务器上运行,而无需 url。 对不起,我误会了。我不相信有一种方法可以在不包含在 URL 中的端口 3000 上运行。不过我可能是错的。以上是关于Node.js - 如何从 url 中删除端口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
node.js 与 express 如何从 url 中删除查询字符串
从cloudinary删除带有完整url的图像不起作用-Node.js
如果连接器端口是 8081,如何从 apache tomcat 中的 URL 中删除端口号