Es la forma en que se empaqueta la aplicación. En la mayoría de * nix, la configuración predeterminada es que un usuario no privilegiado no puede escuchar en un puerto <1024 y los servidores web usan 80 y 443.
Sin embargo, Linux 2.2+, Solaris 10+ y FreeBSD permiten a los usuarios no root escuchar en puertos inferiores a 1024, pero no de manera predeterminada. La mayoría ha aceptado el uso de root
modo que sigue en uso.
Además del acceso para enlazar con el puerto privilegiado, debe asegurarse de que el usuario que ejecuta nginx tenga acceso a todos los archivos que necesita. Probablemente no necesite ir tan lejos como esto, solo configure el permiso correcto en los archivos / directorios. También debe verificar que las secuencias de comandos de inicio no hagan nada astuto como los ulimit
cambios (como mysql siempre parece hacer).
setcap
y le getcap
permite cambiar o ver la cap_net_bind_service
capacidad de un ejecutable. Esto será efectivo para cualquiera que ejecute el binario.
setcap cap_net_bind_service=+ep /usr/sbin/nginx
SELinux proporciona la capacidad de configurar y controlar capacidades a nivel de usuario.
Configuraciones del sistema Freebsd
La configuración del puerto reservado es global para el sistema
sysctl net.inet.ip.portrange.reservedhigh=0
sysctl net.inet.ip.portrange.reservedlow=0
Solaris proporciona un control detallado de los privilegios a nivel de usuario. Estos son los privilegios para apache, pero es probable que también funcionen para nginx.
/usr/sbin/usermod -K defaultpriv=basic,proc_exec,proc_fork,net_privaddr nginx