簡體   English   中英

在Production中以最小權限運行sails.js.

[英]Run sails.js with least privileges in Production

我在Ubuntu Trusty上的節點0.10.33上使用Sails.js 0.10.5。 我想以非root用戶身份執行節點進程,在生產環境中具有盡可能少的權限。 我很滿意綁定到1024以下端口的各種選項,但我更關心目錄權限。

理想情況下,我更喜歡節點進程只對其日志文件具有寫訪問權,而不是其他任何內容。 它應該只對包含app.js及以下的目錄具有讀訪問權限。

目前,由於在啟動時運行的grunt任務,我需要授予./.tmp目錄以及./views目錄的寫訪問權限。 我寧願在部署時以不同的用戶而不是在運行時執行grunt任務。 sails www命令似乎很有希望,但我無法獲得理想的結果。

有人可以指出我正確的方向運行Sails.js,對其資產,視圖等沒有寫入權限嗎?

使用sails www構建靜態資產

chmod -R 440所有文件和目錄,以便您的用戶和Web服務器(組)可以訪問這些文件。

使用nginx / apache在端口80/443上托管Web服務器並代理對sails的請求(在自己的端口或unix套接字上運行)。

使用PM2運行sails以使其保持運行並讓它管理/收集日志。

Sails會解除,但是無法寫入.tmp目錄,這甚至不需要,因為所有靜態文件都將通過nginx / apache路由到www目錄。

對我來說最簡單的解決方案似乎是將需要提升權限的grunt任務分離到一個單獨的文件中,您可以在部署時與其他用戶一起調用。 然后帆不需要運行任何東西,只能讀取。

編輯:我使用PM2和apache作為代理(使用mod WS)。

您可以使用一個代理(如apache)從端口80路由到基於主機的其他內部服務器端口。

通過這種方式,您可以在同一台服務器上運行多個應用

它有很多有用的功能,比如查看日志如何在終端中使用varius應用程序,重啟和登錄崩潰的應用程序,以用戶身份運行應用程序,應用程序狀態等等。

Pm2鏈接: https//github.com/Unitech/pm2

PM2配置: https//github.com/Unitech/PM2/blob/development/ADVANCED_README.md#options

暫無
暫無

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

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