Node.js - 如何从URL中删除端口?

时间:2012-03-02 00:46:25

标签: url node.js port socket.io

我使用node.js和socket.io。

我的应用程序在端口3000上运行。应用程序从网址开始: mydomain.com:3000 /

我想从 mydomain.com 运行该应用程序 - 我想从网址中删除该端口。

我在哪里以及如何设置此设置?

4 个答案:

答案 0 :(得分:23)

找到您的server.listen来电并将端口从3000更改为80。不要忘记您必须运行具有CAP_NET_BIND_SERVICE功能的程序(有关详细信息,请参阅capabilities(7)),以便绑定到Linux系统上小于1024的端口。 root权限将包含此权限和其他权限。

答案 1 :(得分:11)

如果你想像你描述的那样“没有端口”运行它,你实际上将在端口80上运行它。没有root权限就不能这样做。

所以而不是

node server.js

你需要

sudo node server.js

这假设您在尝试运行它的计算机上拥有sudo权限。否则你将遇到EACCESS问题。这就是sarnold试图告诉你的。

答案 2 :(得分:8)

这就是我这样做的原因,因为我正在使用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>

答案 3 :(得分:2)

首先,您可能希望从localhost“127.0.0.1”运行该应用程序。您可以通过在node.js设置中省略端口来删除端口。默认情况下,Web浏览器在端口80上查找服务器。如果由于某种原因希望服务器在端口3000上运行,则必须将其包含在URL中。