57 lines
1.5 KiB
Plaintext
57 lines
1.5 KiB
Plaintext
# ==========================================
|
||
# GardenPlan – Nginx Konfiguration
|
||
# Symfony Reverse Proxy + API Endpoint
|
||
# ==========================================
|
||
|
||
server {
|
||
listen 80;
|
||
server_name _;
|
||
root /var/www/html/public;
|
||
|
||
# Performance-Settings
|
||
client_max_body_size 50M;
|
||
sendfile on;
|
||
tcp_nopush on;
|
||
tcp_nodelay on;
|
||
|
||
# Security Headers
|
||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||
add_header X-Content-Type-Options "nosniff" always;
|
||
add_header X-XSS-Protection "1; mode=block" always;
|
||
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||
|
||
# Default – Symfony Backend (REST API)
|
||
location / {
|
||
try_files $uri /index.php$is_args$args;
|
||
}
|
||
|
||
# PHP-FPM Verbindung
|
||
location ~ ^/index\.php(/|$) {
|
||
fastcgi_pass php-fpm:9000;
|
||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||
include fastcgi_params;
|
||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||
fastcgi_param HTTPS off;
|
||
|
||
# PHP-FPM Timeout-Settings
|
||
fastcgi_connect_timeout 600;
|
||
fastcgi_send_timeout 600;
|
||
fastcgi_read_timeout 600;
|
||
}
|
||
|
||
# Verzeichnis-Zugriffe blockieren
|
||
location ~ /^.ht {
|
||
deny all;
|
||
}
|
||
|
||
# Assets Cache-Control
|
||
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|woff2?|ico)$ {
|
||
expires 30d;
|
||
add_header Cache-Control "public, immutable";
|
||
}
|
||
|
||
# Error Pages (optional)
|
||
error_page 404 /error.html;
|
||
error_page 500 502 503 504 /error.html;
|
||
}
|