Você tem que usar sudo para ligar qualquer porta abaixo de 1024, portas privilegiadas. Vou tentar resumir tudo. primeiro desabilite o apache interno adicionando disabled ao arquivo /System/Library/LaunchDaemons/org.apache.httpd.plist
<key>Disabled</key>
<true/>
copie o arquivo plist do nginx para /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
<key>Label</key>
<string>homebrew.mxcl.nginx</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/nginx/bin/nginx</string>
<string>-g</string>
<string>daemon off;</string>
</array>
<key>WorkingDirectory</key>
<string>/usr/local</string>
com esses parâmetros. verifique a propriedade do arquivo plist. que deve pertença à raiz: roda
-rw-r--r-- 1 root wheel 571 Dec 21 19:39 /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
então você pode iniciar o nginx com privilégio para ligar a porta 80 & 443.
PS: você pode usar o lunchy (um aplicativo simples do ruby para gerenciar launchctl.) que é perfeito para esse trabalho. como: sudo lunchy editar apache, sudo lunchy iniciar nginx etc.
Além disso, você pode ver o que está errado ao jogar o launchctl com o comando syslog -w .