【发布时间】:2023-07-01 20:23:01
【问题描述】:
我必须为我的应用程序和nodejs运行paster serve,我的实时要求都是通过haproxy配置的,但是在这里我需要以sudo的身份运行haproxy来绑定端口80和其他进程作为普通用户,怎么做?我尝试了不同的方法,但没有用。我试过这个命令
command=sudo haproxy
我认为这不是我们应该这样做的方式。有什么想法吗?
【问题讨论】:
标签: haproxy supervisord
我必须为我的应用程序和nodejs运行paster serve,我的实时要求都是通过haproxy配置的,但是在这里我需要以sudo的身份运行haproxy来绑定端口80和其他进程作为普通用户,怎么做?我尝试了不同的方法,但没有用。我试过这个命令
command=sudo haproxy
我认为这不是我们应该这样做的方式。有什么想法吗?
【问题讨论】:
标签: haproxy supervisord
您需要以 root 身份运行 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)。
【讨论】: