upstream php-upstream { server php:9000; } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name vichan; 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)$ { expires 1M; access_log off; log_not_found off; add_header Cache-Control "public"; } # CSS and Javascript location ~* \.(?:css|js)$ { expires 1y; access_log off; log_not_found off; add_header Cache-Control "public"; } 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; } }