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 中删除端口号

如何从 Node.js 中的 URL 请求

如何从 php 或 node.js 获取 websocket url 路径

如何从Node.js中的URL加载外部js脚本