Default nginx only gzips text/html, so the homepage HTML was the only asset coming back compressed. The ~600 KB three.min.js bundle (and the hashed CSS) were being shipped uncompressed across the public openresty proxy. `gzip_types` now covers css/js/json/xml/svg/woff2. Needs `sudo ops/nginx/setup-vm.sh` on forge-runner-01 to take effect — the site-deploy workflow only rebuilds Hugo, it doesn't touch the nginx config. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
45 lines
886 B
Text
45 lines
886 B
Text
server {
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name furtka.org www.furtka.org;
|
|
|
|
root /var/www/furtka.org;
|
|
index index.html;
|
|
|
|
charset utf-8;
|
|
|
|
gzip on;
|
|
gzip_vary on;
|
|
gzip_min_length 1024;
|
|
gzip_comp_level 6;
|
|
gzip_types
|
|
text/css
|
|
text/plain
|
|
text/xml
|
|
application/javascript
|
|
application/json
|
|
application/xml
|
|
application/rss+xml
|
|
application/atom+xml
|
|
image/svg+xml
|
|
font/woff
|
|
font/woff2;
|
|
|
|
location / {
|
|
try_files $uri $uri/ $uri.html =404;
|
|
}
|
|
|
|
location = /favicon.svg {
|
|
access_log off;
|
|
log_not_found off;
|
|
expires 7d;
|
|
}
|
|
|
|
location ~* \.(css|js|svg|woff2?|png|jpg|jpeg|webp|avif)$ {
|
|
access_log off;
|
|
expires 30d;
|
|
add_header Cache-Control "public, immutable";
|
|
}
|
|
|
|
error_page 404 /404.html;
|
|
}
|