AWS ec2 Node.js应用程序 - 禁止端口80(403响应)
当我在端口80上的ec2机器实例上运行开源应用程序“atwork”(https://github.com/ritenv/atwork)时,我得到服务器响应的禁止代码(403) :AWS ec2 Node.js应用程序 - 禁止端口80(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 - -
我曾尝试以下(然而,这一切没有工作):
- 修改AWS控制台上安全组中的防火墙选项,以允许所有端口上的所有tcp通信。
-
运行iptable的是这样的:
的iptables -F 的iptables -X 的iptables -t NAT -F 的iptables -t NAT -X 的iptables -t撕裂-F 的iptables -t碾压机-X 的iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -p tcp -dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp - sport 80 -m state --state ESTABLISHED -j ACCEPT
请帮我理解我做错了什么,以及如何让端口80像其他端口一样工作。
谢谢。
有两种可能性来解决这个问题。 首先,为运行应用程序的ec2计算机用户提供root权限。但它可能是一个安全风险 - 以root身份运行的应用程序。
秒是我喜欢的那个: 以有限的用户身份运行nodejs应用程序,但在反向代理之后。
应用程序可以侦听端口> 1000 - 如8080之一。 你可以运行NGINX作为反向代理。它将监听80或443端口,并将请求传送到您的nodejs应用程序。 您可以使用像这样的nginx配置 - https://github.com/vodolaz095/hunt/blob/master/examples/serverConfigsExamples/nginx.conf
谢谢,我试过nginx,它肯定会将流量重定向到正确的端口,但问题仍然存在。尝试去http://login.patientory.com:8080/网站,然后到http://login.patientory.com: –
我认为它的工作原理 – vodolaz095
您是否检查了ec2实例的安全组? http://*.com/a/10454688/858578 – luchosrock
我做过了,所有的TCP流量都允许所有的ip + http允许所有的ip –
你还有其他的东西在80端口上运行吗? –