簡體   English   中英

Node.js,快遞和集群

[英]Node.js, express and cluster

我已經設置了 Node.js 服務器的測試,但是如何最好地啟動服務器?

我現在的策略是使用集群(http://learnboost.github.com/cluster/)。 這主要工作非常好。 我的 app.js 文件中有以下設置(使用 express 創建):

cluster(app)
.use(cluster.reload())
.use(cluster.reload('views', {extensions: ['.js', '.ejs']}))
.use(cluster.logger('logs'))
.use(cluster.stats())
.use(cluster.repl('/Users/testuser/work/1test/test.sock'))
.use(cluster.debug())
.use(cluster.pidfiles())
.use(cluster.cli())
.listen(3000);

當我在本地測試時,它可以在我的 Mac 上運行。 我用命令啟動它

nohup node app.js &

但是當我在 Linux 上運行並從終端分離時,主線程死了 - 工作線程仍在工作。 在 Mac 上,即使我關閉終端,它也會運行。

我讀到可能有必要更改用戶,這顯然可以在集群中完成: .set('user', 'rambo')

有沒有人有將 node.js 作為帶有集群的“守護程序”啟動的“最佳實踐”,以便您可以分離終端?

如果我更改啟動時應該登錄的用戶?

我應該使用諸如屏幕之類的程序從終端分離而不殺死任何進程嗎?

永遠嘗試。

npm install -g forever

https://github.com/indexzero/forever

看起來你也在設置

.use(cluster.repl('/Users/testuser/work/1test/test.sock'))

您的 linux 服務器上可能不存在。

暫無
暫無

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

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