server { listen 80; server_name _; root /var/www/html/public; index index.php index.html; client_max_body_size 210M; add_header X-Frame-Options "DENY"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header Referrer-Policy "strict-origin-when-cross-origin"; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass app:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; } # Deny access to hidden files location ~ /\. { deny all; } # Deny direct access to storage (private files served via PHP) location ~ ^/storage/ { deny all; } }