天天看點

node如何讓一個端口同時支援https與http

衆所周知node是一個高性能的web伺服器,使用它可以很簡單的建立一個http或https的伺服器。

比如一個很簡單的http伺服器:

從上文我們可以看出,node生成的每個伺服器必須配置設定一個端口。那麼如果我們在工作中遇到一個需求:讓同一個端口或位址既支援http協定又支援https協定,這時候我們該怎麼辦,有的同學很可能想到用nginx做反向代理,這不失為一個解決方案,但這也同樣意味着增加了産品的複雜度,使用者并不想去折騰ngnix。

辦法是有的,原理就要搬出osi的七層模型:

node如何讓一個端口同時支援https與http

http與https都屬于應用層協定,是以隻要我們<code>在底層協定中進行反向代理</code>,就可以解決這個問題! 剛好node可以讓我們很友善的建立一個tcp伺服器!

是以我們的核心代碼如下:

繼續閱讀