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

Jen*_*nan 34 url port node.js socket.io

我使用node.js和socket.io.

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

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

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

sar*_*old 23

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

  • 以"root"运行命令可以解决问题,但这会使您的站点非常不安全.正确的解决方案是使用反向代理,然后将目录(例如"mydomain.com/app")绑定到端口3000. (2认同)

Aas*_*sai 12

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

而不是

node server.js
Run Code Online (Sandbox Code Playgroud)

你需要

sudo node server.js
Run Code Online (Sandbox Code Playgroud)

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


Ann*_*nna 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>
Run Code Online (Sandbox Code Playgroud)