use*_*930 3 amazon-ec2 bitnami amazon-web-services node.js
我有一个在 port 上运行的 node.js 应用程序3000。我将它部署在亚马逊网络服务 ( ec2) 上,它在那里工作。我的server.js文件说:
var port = process.env.PORT || 3000;
(...)
app.listen(port);
console.log('App listening on port ' + port);
Run Code Online (Sandbox Code Playgroud)
我在 aws 设置中的安全组似乎也打开了端口 80:
所以我认为只需更改var port为= 80并重新启动服务器就足够了。但是当我这样做时,我得到了一个错误:
bitnami@ip-172-31-47-102:~/apps/myproject/www/myproject$ sudo node server.js
App listening on port 80
events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::80
at Object.exports._errnoException (util.js:856:11)
at exports._exceptionWithHostPort (util.js:879:20)
at Server._listen2 (net.js:1237:14)
at listen (net.js:1273:10)
at Server.listen (net.js:1369:5)
at Function.app.listen (/opt/bitnami/apps/myproject/www/myproject/node_modules/express/lib/application.js:542:24)
at Object.<anonymous> (/opt/bitnami/apps/myproject/www/myproject/server.js:43:5)
at Module._compile (module.js:398:26)
at Object.Module._extensions..js (module.js:405:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:430:10)
at startup (node.js:141:18)
at node.js:1003:3
Run Code Online (Sandbox Code Playgroud)
我正在使用Bitnami MEAN 3.2.1-0亚马逊上的系统。
另外,我想更改此端口的原因是:
到目前为止,我所有的网络服务都在端口 3000 上运行。但是,我也有一个public_html包含该index.html文件的文件夹。所以当任何用户想要显示我的网页时,他不仅要输入网页,还要输入端口(3000),这不太方便。
到目前为止,整个应用程序都在 www.ec2-some-random-amazom-numbers.eu-west-1.compute.amazonaws.com:3000/index.html 下,所以我会购买一个普通的顶级域名来指向它(例如 something.com )但是 - 在这种情况下,我还需要将端口 3000 更改为 80 吗?或者也许将应用程序留在 80 以外的端口上很常见?
如果是后者,那么我是否可以将端口保持原样,并将顶级域指向整个亚马逊上最后一个端口为 3000 的域名?
例如:当用户输入时,www.something.com它会将他重定向到
www.ec2-some-random-amazom-numbers.eu-west-1.compute.amazonaws.com:3000/index.html?
这样的事情应该适合你:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
Run Code Online (Sandbox Code Playgroud)
您想使用 iptables 在内部将来自端口 80 的请求转发到端口 3000。
| 归档时间: |
|
| 查看次数: |
3930 次 |
| 最近记录: |