Errores 500 y 404 en Nginx en Linux

Recientemente empece a tener problemas de acceso en un servidor Nginx montado en una raspberry pi donde tengo una pagina web.

Nginx guarda por defecto los errores en el archivo error.log ubicado en la siguiente dirección /var/log/nginx/ es el primero lugar a ver para tener mas detalle del problema, el comando tail es muy bueno para esto al como lo siguiente.

tail -f /var/log/nginx/error.log

Al ver el error.log note que eran problemas de acceso, en este caso el root apunta a una carpeta que esta dentro de /home/pi, Nginx depende del usuario www-data y este debe tener acceso a las carpetas y archivos, aqui lo mejor es probar los accesos en las carpetas con los siguientes comandos.

sudo -u www-data stat /home/
sudo -u www-data stat /home/pi/
sudo -u www-data stat /home/pi/ip_camera/
sudo -u www-data stat /home/pi/ip_camera/html_root/

La respuesta cuando todo esta bien debería ser como la siguiente.

 File: '/home/pi/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: b307h/45831d	Inode: 1453694     Links: 4
Access: (0755/drwxr-xr-x)  Uid: ( 1000/      pi)   Gid: ( 1000/      pi)
Access: 2016-05-08 19:50:23.567139508 -0600
Modify: 2020-12-12 17:44:42.432180801 -0600
Change: 2020-12-12 20:19:54.758237130 -0600
 Birth: -

En mi caso los errores de acceso los obtuve en las carpetas ip_camera y ip_camera/html_root así que agregue el usuario www-data al grupo pi y también permisos de ejecución en estas carpetas al grupo pi con los siguientes comandos.

sudo gpasswd -a www-data pi
sudo chmod g+x /home/pi/ip_camera/
sudo chmod g+x /home/pi/ip_camera/html_root/

Luego debemos reiniciar el servicio de Nginx y listo.