簡體   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