He alojado la aplicación de reacción en nginx, cuando intento acceder a cualquier archivo con extensión (por ejemplo, favicon.ico), nginx arroja un error prohibido 403 aunque funciona bien para el enrutamiento básico de la aplicación, es decir, para archivos sin extensión. Estoy pegando la configuración de nginx a continuación, y los archivos estáticos a los que intento acceder están en /var/www/deebaco.com/html. ¿Necesito escribir otro bloque de ubicación para servir archivos con extensiones?
server { listen 80; server_name deebaco.com www.deebaco.com; return 301 https://www.deebaco.com$request_uri; } server { listen 443 ssl; server_name deebaco.com; ssl_certificate /root/deebaco.com.chained.crt; ssl_certificate_key /root/deebaco.com.key; return 301 https://www.deebaco.com$request_uri; } server { listen 443 ssl http2; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; server_name www.deebaco.com; root /var/www/deebaco.com/html; ssl_certificate /root/deebaco.com.chained.crt; ssl_certificate_key /root/deebaco.com.key; #location / { #try_files $uri $uri/ /index.html?$args; #} location / { try_files $uri /index.html; autoindex on; autoindex_exact_size off; } }
Verifique el propietario del directorio público, por ejemplo, usando este comando:
ls -l /var/www/deebaco.com/html
nginx
a menudo se ejecuta como nobody
. En su lugar, debe ejecutarse con el mismo usuario que el propietario.
Edite /etc/nginx/nginx.conf
para configurar el mismo usuario. Por ejemplo, si el directorio es propiedad de www-data
, agregue lo siguiente:
user www-data;
Después de guardar la configuración, valide que sea correcta:
sudo nginx -t
Si el comando anterior confirma que la sintaxis es correcta, vuelva a cargar la configuración de nginx:
sudo systemctl reload nginx.service
Esto deberia resolver el problema.