É a maneira como o aplicativo é empacotado. Na maioria dos * nix, a configuração padrão é que um usuário não privilegiado não pode escutar em uma porta <1024 e os servidores da Web usam 80 e 443.
No entanto, o Linux 2.2+, o Solaris 10+ e o FreeBSD permitem que usuários não-root escutem em portas inferiores a 1024, mas não por padrão. A maioria aceitou o uso, root
por isso permanece em uso.
Além do acesso à ligação à porta privilegiada, você precisa garantir que o usuário que está executando o nginx tenha acesso a todos os arquivos necessários. Você provavelmente não precisa ir tão longe quanto isso, mas apenas defina a permissão correta nos arquivos / diretórios. Você também precisa verificar se os scripts de inicialização não fazem nada sorrateiro como ulimit
mudanças (como o mysql sempre parece).
setcap
e getcap
permite alterar ou exibir a cap_net_bind_service
capacidade de um executável. Isso será válido para quem executar o binário.
setcap cap_net_bind_service=+ep /usr/sbin/nginx
O SELinux fornece a capacidade de configurar e controlar recursos no nível do usuário.
Configurações do sistema Freebsd
As configurações de porta reservada são globais para o sistema
sysctl net.inet.ip.portrange.reservedhigh=0
sysctl net.inet.ip.portrange.reservedlow=0
O Solaris fornece controle refinado de privilégios no nível do usuário. Esses são os privilégios do apache, mas provavelmente também funcionarão para o nginx.
/usr/sbin/usermod -K defaultpriv=basic,proc_exec,proc_fork,net_privaddr nginx