server { listen 80; server_name _; root /var/www/holos.backend/public; index index.php index.html; # Logging error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; # Handle Laravel routes (Front Controller) location / { try_files $uri $uri/ /index.php?$query_string; } # Handle PHP files location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass holos-backend:9000; fastcgi_index index.php; # Timeouts importantes para evitar errores 500 fastcgi_read_timeout 300; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; # Carga los parámetros por defecto include fastcgi_params; # Parámetros críticos para Laravel fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param REQUEST_URI $request_uri; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param HTTP_HOST $http_host; fastcgi_param HTTPS $https if_not_empty; fastcgi_param HTTP_PROXY ""; } # Handle storage files (Laravel storage link) location /storage { alias /var/www/holos.backend/storage/app/public; try_files $uri =404; } # Denegar acceso a archivos ocultos como .htaccess location ~ /\.ht { deny all; } }