繁体   English   中英

AWS ec2 Node.js应用程序-禁止端口80(403响应)

[英]AWS ec2 Node.js Application - Forbidden Port 80 (403 Response)

当我在端口80的ec2机器实例上运行开放源代码应用程序“ atwork”( https://github.com/ritenv/atwork )时,我收到带有禁止代码的服务器响应(403):

AtWork running at 0.0.0.0:80
GET / 304 3.802 ms - -
GET /users/notifications 403 3.972 ms - 9
GET /posts?limitComments=true 403 0.956 ms - 9
GET /chats 403 1.289 ms - 9
GET /streams?subscribed=true 403 0.708 ms - 9
GET /streams?unsubscribed=true 403 0.859 ms - 9
GET /users/me 403 0.847 ms - 9
GET /system-settings 304 4.803 ms - -
GET /favicon.ico 304 0.453 ms - -
GET /system-settings 304 2.766 ms - -
GET /favicon.ico 304 0.322 ms - -

但是,当我在另一个端口(8080)上运行它时,我从服务器收到以下200条消息:

AtWork running at 0.0.0.0:8080
GET / 200 4.219 ms - 6412
GET /users/notifications 304 12.189 ms - -
GET /posts?limitComments=true 304 5.162 ms - -
GET /chats 304 4.344 ms - -
GET /streams?unsubscribed=true 304 5.429 ms - -
GET /streams?subscribed=true 304 5.495 ms - -
GET /users/me 200 3.478 ms - 882
GET /system-settings 304 4.809 ms - -
Kirill A Novik is online.
GET /favicon.ico 304 0.795 ms - -

我尝试了以下方法(但是,没有一个起作用):

  1. 修改AWS控制台上安全组中的防火墙选项,以允许所有端口上的所有TCP通信。
  2. 像这样运行iptable:

    iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INP p tcp --dport 80 -m状态-状态NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -m state-状态已建立-j ACCEPT

请帮助我了解我在做什么错,以及如何使端口80的行为像其他端口一样。

谢谢。

有2种可能性可以解决此问题。 首先,是为运行该应用程序的ec2计算机用户授予root权限。 但这可能会带来安全风险-以root身份运行应用程序。

秒是ii的首选:以受限用户身份运行nodejs应用程序,但落后于反向代理。

应用程序可以在> 1000的端口上侦听-就像8080一样。 您可以将NGINX作为反向代理运行。 它将侦听80或443端口,并将请求传输到您的nodejs应用程序。 您可以使用像这样的Nginx配置-https: //github.com/vodolaz095/hunt/blob/master/examples/serverConfigsExamples/nginx.conf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM