我必須爲我的app和nodejs運行paster服務以滿足我的實時需求,這兩者都是通過haproxy配置的,但在這裏我需要運行haproxy作爲sudo來綁定端口80和其他進程作爲普通用戶,該怎麼做?我嘗試了不同的方式,但沒用。我試過這個命令supervisord with haproxy,paster和node js
命令=須藤HAProxy的
我覺得這不是我們應該這樣做的方式。有任何想法嗎?
我必須爲我的app和nodejs運行paster服務以滿足我的實時需求,這兩者都是通過haproxy配置的,但在這裏我需要運行haproxy作爲sudo來綁定端口80和其他進程作爲普通用戶,該怎麼做?我嘗試了不同的方式,但沒用。我試過這個命令supervisord with haproxy,paster和node js
命令=須藤HAProxy的
我覺得這不是我們應該這樣做的方式。有任何想法嗎?
您需要以超級用戶身份運行supervisord,並將其配置爲在非特權用戶下運行您的各種服務。
[program:paster]
# other configuration
user = wwwdaemon
爲了這個工作,你不能設置在[supervisord]
部分user
選項(否則守護進程無法重新啓動HAProxy的服務器)。因此,您需要確保您的supervisord配置只能由root寫入,因此不能將新程序添加到正在運行的supervisord守護進程中,並且您希望確保XML-RPC服務器選項得到良好保護。
後者表示您需要檢查您已配置爲正確鎖定的任何[unix_http_server]
,[inet_http_server]
和[rpcinterface:x]
部分。例如,對[unix_http_server
]部分使用chown
和chmod
選項來限制對特權用戶的套接字文件的訪問。
或者,您可以使用最少的配置運行輕量級前端服務器,將代理端口80代理到非特權端口,並將此最小服務器保留在supervisord設置之外。例如,ngnix
是一個很好的服務器,可以通過服務器的本地打包系統(例如Debian或Ubuntu上的apt-get)進行安裝。
感謝您的回答。我認爲讓haproxy脫離supervisord設置並僅用它來管理我的貼子和nodjs進程可能會更好,因爲我們不必在每次重新啓動正在處理的其他服務器/進程時重新啓動haproxy。 – user755065 2012-08-03 04:11:43