upstream php-upstream { server php:9000; } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name leftypol; root /var/www/html; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index index.html index.php; charset utf-8; location ~ ^([^.\?]*[^\/])$ { try_files $uri @addslash; } # Expire rules for static content # Media: images, icons, video, audio, HTC location ~* \.(?:jpg|jpeg|gif|png|webp|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { log_not_found off; # Public cache, never changes until max-age expires, max-age of 1 month, can still be served while being # revalidated or if the server is erroring for 1 day. add_header Cache-Control "public, immutable, max-age=2592000, stale-while-revalidate=86400, stale-if-error=86400"; } # CSS and Javascript location ~* \.(?:css|js)$ { log_not_found off; # Public cache, max-age of 1 year, can still be served while being revalidated or if the server is erroring for 1 day. add_header Cache-Control "public, max-age=31536000, stale-while-revalidate=86400, stale-if-error=86400"; } location ~* \.(html)$ { expires -1; } location @addslash { return 301 $uri/; } location / { try_files $uri $uri/ /index.php$is_args$args; } client_max_body_size 2G; location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Request-Id $x_request_id; proxy_set_header X-Forwarded-Host $host; proxy_set_header Forwarded-Request-Id $x_request_id; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; fastcgi_read_timeout 600; include fastcgi_params; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } }