如何在PM2 cluster模式下啟動監(jiān)聽80端口的Node服務(wù)器程序

對Linux有所了解的同學(xué)都知道崩掘,一般用戶是沒有權(quán)限去監(jiān)聽1024以內(nèi)的端口的衣摩。什么意思呢?舉例來說缘滥,像下面這段代碼:

require('http').createServer(function (req, res) {
  // Server Logic Here
}).listen(80);

其目的是要啟動一個http服務(wù)器并監(jiān)聽80端口。?如果啟動該process的用戶非root用戶谒主,執(zhí)行上述代碼就會拋出類似下面的錯誤:

而且朝扼,我們一般部署應(yīng)用都采用PM2 的cluster模式來啟動我們的應(yīng)用,這樣能夠利用它內(nèi)置的負(fù)載均衡(這對單機多核CPU的情況下非常有好處)霎肯,所以我們得要能夠讓PM2成功啟動這類Node服務(wù)器應(yīng)用擎颖。那么怎么辦呢?解決這個問題观游,一般有以下幾種主流辦法:

  1. 直接采用root用戶啟動
  2. 通過libcap2-bin的setcap命令
  3. 采用iptables設(shè)置端口轉(zhuǎn)發(fā)

對于#1種方法顯而易見搂捧,不安全!#2種方法貌似對于node直接啟動work懂缕,但是PM2最新版本(v0.9.2)在Node v0.10.29下沒有辦法work允跑。#3種辦法也是我個人比較喜歡的辦法,就是利用iptables來設(shè)置將80端口的數(shù)據(jù)流和Node服務(wù)器監(jiān)聽的端口數(shù)據(jù)流進行互相轉(zhuǎn)發(fā)搪柑。而且這種轉(zhuǎn)發(fā)是直接網(wǎng)卡層面的(iptables本身工作在OSI七層模型中的2聋丝,3,4層)拌屏。什么意思呢窝爪?簡單來說就是:既然普通用戶無法監(jiān)聽1024以內(nèi)的端口,那么就監(jiān)聽一個以外的端口比如:3003之類的脸哀,然后PM2直接啟動這樣的進程是毫無壓力的杯瞻,緊接著呢瓣戚,設(shè)置iptables將80端口和3003端口之間建立映射,這樣呢焦读,用戶訪問80端口就等于在訪問3003端口子库。就這么簡單!

而且設(shè)置這樣一條端口映射的規(guī)則也只需輸入如下命令即可:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3003

關(guān)于命令具體啥意思矗晃,大家查查iptables的幫助文檔就很容易理解了仑嗅。好了,一切都正常work了张症。但是仓技,慢著!還沒完呢俗他。這里有個問題就是:這樣設(shè)置的iptables規(guī)則只寫在內(nèi)存中脖捻,換句話說機器一重啟這條規(guī)則就木有了!那么怎么解決這個問題呢兆衅?

辦法就是:把這條規(guī)則寫在配置文件中地沮,然后每次機器重啟的時候去執(zhí)行一次,把規(guī)則再次加到表中羡亩。具體步驟如下:

  1. 首先執(zhí)行好此前那條端口轉(zhuǎn)發(fā)命令
  2. 切換到root用戶登錄(ubuntu下執(zhí)行su命令)(因為要保存配置到/etc目錄下)
  3. 執(zhí)行:iptables-save > /etc/iptables-rules摩疑。(支持ipv6就執(zhí)行ip6tables-save)
  4. 最后,編輯/ect/network/interfaces文件畏铆,并在最后插入:pre-up iptables-restore < /etc/iptables-rules(這里目的就是在網(wǎng)卡激活前執(zhí)行這條命令來使規(guī)則生效)

好了雷袋,到這里就大功告成了。這個時候你再重啟試試及志,就自動做好端口映射了片排!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市速侈,隨后出現(xiàn)的幾起案子率寡,更是在濱河造成了極大的恐慌,老刑警劉巖倚搬,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冶共,死亡現(xiàn)場離奇詭異,居然都是意外死亡每界,警方通過查閱死者的電腦和手機捅僵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眨层,“玉大人庙楚,你說我怎么就攤上這事∨坑#” “怎么了馒闷?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵酪捡,是天一觀的道長。 經(jīng)常有香客問我纳账,道長逛薇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任疏虫,我火速辦了婚禮永罚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卧秘。我一直安慰自己呢袱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布斯议。 她就那樣靜靜地躺著产捞,像睡著了一般醇锚。 火紅的嫁衣襯著肌膚如雪哼御。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天焊唬,我揣著相機與錄音恋昼,去河邊找鬼。 笑死赶促,一個胖子當(dāng)著我的面吹牛液肌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸥滨,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼嗦哆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婿滓?” 一聲冷哼從身側(cè)響起老速,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凸主,沒想到半個月后橘券,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡卿吐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年旁舰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗡官。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡箭窜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衍腥,到底是詐尸還是另有隱情磺樱,我是刑警寧澤芥丧,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站坊罢,受9級特大地震影響续担,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜活孩,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一物遇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧憾儒,春花似錦询兴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至训裆,卻和暖如春眶根,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背边琉。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工属百, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人变姨。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓族扰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親定欧。 傳聞我的和親對象是個殘疾皇子渔呵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)砍鸠,斷路器扩氢,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • iptabels是與Linux內(nèi)核集成的包過濾防火墻系統(tǒng),幾乎所有的linux發(fā)行版本都會包含iptables的功...
    隨風(fēng)化作雨閱讀 4,755評論 1 16
  • 1睦番、第八章 Samba服務(wù)器2类茂、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點托嚣,域名解析概念命令:...
    哈熝少主閱讀 3,718評論 0 10
  • 昨天(2017年8月8日)巩检,九寨溝發(fā)生地震。一下子又讓人聯(lián)想起了2008年5.20的汶川大地震示启。 那...
    浪子文良閱讀 461評論 0 0
  • 《午后的烘培》 作者:明至 給生活加一點甜兢哭, 將告白揉進陪伴里, 充分混合夫嗓,攪拌迟螺, 形成一團金色歲月冲秽。 再切割,并...
    作家明至閱讀 292評論 0 1