Problema: Error 403 Forbidden de Nginx para archivos estáticos
El error 403 Forbidden de Nginx ocurre cuando se intenta servir archivos estáticos, bloqueando el acceso a los recursos del sitio web. Este problema puede afectar el funcionamiento de un sitio web, ya que impide que los usuarios vean imágenes, hojas de estilo u otro contenido estático.
Diagnosticando el problema
Verificando la configuración de Nginx
Para solucionar el error 403 Forbidden de Nginx, revise su configuración de Nginx. Compruebe el bloque de ubicación para archivos estáticos en su archivo nginx.conf o en el archivo del bloque del servidor. Este bloque establece cómo Nginx maneja las solicitudes de contenido estático.
Ejemplo de un bloque de ubicación:
location /static {
root /var/www/mysite;
try_files $uri =404;
}
Verifique si la directiva root o alias está configurada correctamente. La directiva root establece el directorio base para las solicitudes, mientras que la directiva alias establece una ruta diferente para la ubicación especificada.
Consejo: Solución de problemas de configuración de Nginx
Use el comando nginx -t para probar su configuración de Nginx en busca de errores de sintaxis. Este comando verifica los archivos de configuración e informa cualquier problema, ayudándole a identificar y solucionar problemas rápidamente.
Examinando los permisos de archivos y directorios
A continuación, verifique los permisos de archivos y directorios de su contenido estático. Use el comando ls -l para ver la propiedad y los permisos de archivos y directorios.
Ejemplo:
ls -l /var/www/mysite/static
Confirme que el usuario de Nginx (a menudo www-data o nginx) tiene acceso de lectura a los archivos y permiso de ejecución para los directorios. El permiso de ejecución en los directorios permite al usuario acceder al contenido del directorio.
Para encontrar el usuario de Nginx, busque en su archivo nginx.conf la directiva user o use este comando:
ps aux | grep nginx
Si los permisos son incorrectos, es posible que necesite cambiarlos usando los comandos chmod y chown.
Soluciones para corregir el error 403 Forbidden
Ajustando la configuración de usuario de Nginx
Para solucionar el error 403 Forbidden, es posible que necesite cambiar la directiva user en su archivo nginx.conf. Esta directiva establece con qué usuario se ejecuta Nginx, afectando su acceso a archivos y directorios.
- Abra su archivo nginx.conf (generalmente en /etc/nginx/):
sudo nano /etc/nginx/nginx.conf
- Busque la directiva user cerca de la parte superior del archivo. Podría verse así:
user www-data;
- Si es necesario, cambie el usuario para que coincida con el propietario de sus archivos estáticos. Por ejemplo:
user su_nombre_de_usuario;
-
Guarde el archivo y salga del editor.
-
Reinicie Nginx para aplicar los cambios:
sudo systemctl restart nginx
Consejo: Verificar el usuario de Nginx
Para comprobar con qué usuario se está ejecutando Nginx, use el comando:
ps aux | grep nginx
Esto le mostrará los procesos que ejecutan Nginx y el usuario asociado con cada proceso.
Corrigiendo los permisos de archivos y directorios
Ajuste la propiedad y los permisos de sus archivos estáticos para permitir que Nginx acceda a ellos:
- Cambie la propiedad de los archivos estáticos al usuario de Nginx:
sudo chown -R nginx:nginx /ruta/a/sus/archivos/estaticos
- Establezca los permisos de lectura y ejecución:
sudo chmod -R 755 /ruta/a/sus/archivos/estaticos
Este comando otorga permisos de lectura y ejecución al propietario, y acceso de solo lectura a otros.
Actualizando el bloque de ubicación de Nginx
Revise y corrija la directiva root o alias en su bloque de ubicación de Nginx:
- Abra su archivo de configuración del bloque del servidor:
sudo nano /etc/nginx/sites-available/su_sitio
- Encuentre el bloque de ubicación para archivos estáticos y verifique la directiva root o alias:
location /static {
root /var/www/su_sitio;
# o
alias /ruta/a/sus/archivos/estaticos;
}
-
Asegúrese de que la ruta a sus archivos estáticos sea correcta.
-
Guarde el archivo y salga del editor.
-
Pruebe la configuración de Nginx:
sudo nginx -t
- Si la prueba es exitosa, recargue Nginx:
sudo systemctl reload nginx





