亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用端口80運行Node.js的最佳實踐(Ubuntu/Linode)

使用端口80運行Node.js的最佳實踐(Ubuntu/Linode)

慕運維8079593 2019-07-13 16:31:42
我正在設置我的第一個Node.js服務器上的cloud Linux node我對Linux admin..(順便說一下,我不想同時使用Apache。)所有的安裝都是正確的,但是我發現除非我使用root login,我聽不進去port 80用節點。但是,出于安全原因,我不愿將其作為根運行。最佳做法是:為節點設置良好的權限/用戶,使其安全/沙箱化?允許在這些約束范圍內使用端口80。啟動節點并自動運行它。處理發送到控制臺的日志信息。任何其他一般的維護和安全問題。我應該將端口80的流量轉發到不同的偵聽端口嗎?
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

授予安全用戶使用端口80的權限

請記住,我們不希望以根用戶的身份運行您的應用程序,但是有一個問題:您的安全用戶沒有使用默認HTTP端口(80)的權限。您的目標是能夠發布一個網站,訪問者可以使用導航到一個易于使用的URL,如http://ip:port/

不幸的是,除非您以root用戶身份登錄,否則通常必須使用如下所示的URLhttp://ip:port-港口號>1024。

很多人被困在這里,但解決辦法很簡單。有幾個選擇,但這是我喜歡的。鍵入以下命令:

sudo?apt-get?install?libcap2-bin
sudo?setcap?cap_net_bind_service=+ep?`readlink?-f?\`which?node\``

現在,當您告訴Node應用程序希望它在端口80上運行時,它不會抱怨。


查看完整回答
反對 回復 2019-07-13
?
森欄

TA貢獻1810條經驗 獲得超5個贊

在綁定到端口80(或443)后刪除根權限。

這允許端口80/443保持保護,同時仍然阻止您以root用戶身份服務請求:

function?drop_root()?{
????process.setgid('nobody');
????process.setuid('nobody');}

使用上述功能的完整示例:

var?process?=?require('process');var?http?=?require('http');var?server?=?http.createServer(function(req,?res)?{
????res.write("Success!");
????res.end();});server.listen(80,?null,?null,?function()?{
????console.log('User?ID:',process.getuid()+',?Group?ID:',process.getgid());
????drop_root();
????console.log('User?ID:',process.getuid()+',?Group?ID:',process.getgid());});


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 929 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號