我使用node.js和socket.io。
我的应用程序在端口3000上运行。应用程序从网址开始: mydomain.com:3000 /
我想从 mydomain.com 运行该应用程序 - 我想从网址中删除该端口。
我在哪里以及如何设置此设置?
答案 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中。