簡體   English   中英

我應該在node.js上監聽哪些端口? 怎么樣和為什么?

[英]What ports should I node.js listen on? How and why?

我的node.js應用程序我在端口80上監聽http,443監聽https,我認為這是相當標准的做法。

然而,我最近閱讀的一些示例使用其他端口(例如8080和8081)來監聽http / https,然后使用其他方式(如iptablesufw規則)通過將數據包重新路由到其他端口來為端口ufw提供服務。

在此處此處查看兩個示例。

所以我的問題是為什么我不想直接聽端口80和443?

手頭有安全問題嗎? 這僅僅是這些作者沒有權限偵聽低於1024的端口的情況(我發現這令人驚訝嗎?)? 大多數人沿着側節點運行Apache嗎? (我不)。

假設有一個很好的理由為什么我不想直接聽80和/或443, 我應該使用哪種方法將流量從80/433中繼到我選擇的備用端口?

我之前提到iptables和ufw,其中一個比其他更好,還是我應該使用其他方法? 答案取決於我是否在進程之間平衡負載?

提前致謝。

您鏈接的第一篇文章的第一行提到了原因。

Standard practices say no non-root process gets to talk to
the Internet on a port less than 1024.

要將節點綁定到端口80443 ,您需要以root身份運行它,這不是一個好主意。

用於將流量重新路由到更高端口的方法取決於您。 iptables是資源最少且最簡單的。 另一種方法是使用NginX / Apache代理Node。 我想說這種方法的主要好處是你可以從那里提供靜態文件之類的東西,而不必通過Node提供它們。

Apache和NginX都明確地設計為非常擅長提供靜態文件,因此它們非常擅長,而Node是一個完整的JS環境,涉及所有開銷。 Node非常適合處理大量的並發連接,它可以很好地為正常負載提供文件,但是它將使用比NginX更多的資源來完成它。

使用像Apache / NginX這樣的HTTP感知代理也意味着您可以非常輕松地設置多個Node實例來運行不同的子域,甚至可以在同一個域上運行不同的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM