El «403 Forbidden» es el error más común al trabajar con NGINX. En este artículo, te explicaremos las causas del error «403 forbidden» en NGINX, cómo encontrar su origen y cómo solucionar el problema principal.

Sobre el error

«403 Forbidden» es un error universal de NGINX que indica que has solicitado algo que NGINX (por varias razones) no puede proporcionar. «403» es un código de estado HTTP que significa que el servidor web recibió y entendió tu solicitud, pero no puede tomar ninguna medida adicional.

Encontrar el archivo de configuración de NGINX

Por defecto, los archivos de configuración de NGINX se encuentran en la carpeta /etc/nginx. Si revisas este directorio, encontrarás varios archivos de configuración para diferentes módulos del servidor.

El archivo principal de configuración es /etc/nginx/nginx.conf. Contiene las directivas principales para NGINX y es análogo al archivo httpd.conf de Apache.

Para editar este archivo, usa el comando:

  • CentOS 7: sudo nano /etc/nginx/conf.d/test.example.com.conf
  • Ubuntu 16.04: sudo nano /etc/nginx/sites-available/test.example.com.conf

Para solucionar un error interno del servidor, debes verificar la configuración del servidor y los registros de errores.

Archivo de índice incorrecto

Una de las causas más comunes del error «403 forbidden» en NGINX es una configuración incorrecta del archivo de índice.

nginx.conf indica qué archivos de índice se deben cargar y en qué orden. Por ejemplo, la línea siguiente indica a NGINX que busque index.html, luego index.htm, luego index.php:

index index.html index.htm index.php;

Si ninguno de estos tres archivos se encuentra en el directorio, NGINX devolverá el error «403 Forbidden».

Nota: Los nombres de los archivos distinguen entre mayúsculas y minúsculas. Si nginx.conf indica index.html y el archivo se llama Index.html, esto provocará el error «403 Forbidden».

Si quieres usar un nombre de archivo de índice que tu servidor web NGINX no reconoce, edita nginx.conf y agrega el nombre del archivo a la línea de configuración del índice.

Por ejemplo, para agregar index.py a la lista de archivos de índice reconocidos, edita la línea de la siguiente manera:

index index.html index.htm index.php index.py;

Guarda los cambios y luego reinicia NGINX con el comando:

sudo nginx -s reload

Autoíndice

Una alternativa es permitir el índice del directorio. El índice del directorio significa que si no se encuentra un archivo de índice, el servidor mostrará todo el contenido del directorio.

Por razones de seguridad, el índice del directorio en NGINX está desactivado por defecto.

Si obtienes un «403 forbidden» en NGINX y quieres mostrar el índice del directorio en situaciones donde NGINX no puede encontrar (identificar) un archivo, edita nginx.conf como se describió anteriormente y agrega las dos directivas siguientes:

autoindex on;
autoindex_exact_size off;

Estas directivas deben agregarse al bloque location. Puedes agregarlas a un bloque location/ existente o agregar uno nuevo. El resultado final debe verse así:

location / {
  [pre-existing configurations, if applicable]
  autoindex on;
  autoindex_exact_size off;
  }

También puedes activar el indexado de directorios en una carpeta específica si no quieres que esté disponible para todo el sitio:

location /myfiles {
  autoindex on;
  autoindex_exact_size off;
}

Guarda los cambios en el archivo y luego reinicia NGINX con el comando:

sudo nginx -s reload

El error 403 Forbidden indica que el acceso está prohibido por reglas administrativas.

Permisos de archivo

Los permisos de archivo incorrectos son otra causa del error «403 Forbidden» en NGINX. Para su uso con NGINX, se recomienda la configuración estándar: 755 para directorios y 644 para archivos. El usuario NGINX también debe ser el propietario de los archivos.

Identificación del usuario NGINX

Primero, debes determinar en nombre de qué usuario se ejecuta NGINX. Para ello, usa el comando:

ps -ef | grep nginx

En este ejemplo, el proceso de trabajo de NGINX se ejecuta en nombre del usuario nginx.

Establecer la propiedad del archivo

Ve al nivel superior del directorio raíz del documento del sitio. Por ejemplo, si el directorio raíz de tu sitio es /usr/share/nginx/example.com, ve a /usr/share/nginx con el comando:

cd /usr/share/nginx

Cambia la propiedad de todos los archivos en los subdirectorios al usuario nginx con el comando:

sudo chown -R nginx:nginx *

Establecer los permisos de acceso

«403 forbidden» en NGINX – cómo solucionarlo: establece los permisos de acceso para cada directorio en 755 con el comando:

sudo chmod 755 [nombre del directorio]

Por ejemplo, para establecer los permisos de acceso para el directorio example.com, se usa el comando:

sudo chmod 755 example.com

Luego, ve al directorio raíz del documento web:

sudo chmod 755 example.com

Cambia los permisos de acceso para todos los archivos en este directorio con el comando:

sudo chmod 644 *

Categorizado en:

Programación,