Compress the bundle in the nginx example
The Caddy example has `encode zstd gzip`; the nginx one had nothing, so a deployment following it shipped every asset uncompressed. Measured against the built app that is 915 KB on the wire where 307 KB would do -- the difference falls entirely on first load, and silently, since nothing about it is visible without inspecting response headers. `text/javascript` is listed explicitly. The server sends scripts with that type rather than `application/javascript`, so a conventional gzip_types list compresses the stylesheet and leaves the 647 KB script alone -- which is what happened on the first attempt at this change. text/event-stream is deliberately not listed. Compressing or buffering the push stream would break it; proxy_buffering is already off below for the same reason. Verified that /api/events still delivers a StateChange event through the proxy, as plain text, while assets come back gzipped with Vary set.
This commit is contained in:
@@ -6,6 +6,26 @@ server {
|
|||||||
|
|
||||||
client_max_body_size 60m;
|
client_max_body_size 60m;
|
||||||
|
|
||||||
|
# ihasmail serves its bundle uncompressed and leaves this to the proxy, so
|
||||||
|
# without these directives the browser downloads about 915 KB where 307 KB
|
||||||
|
# would do. text/event-stream is deliberately absent from gzip_types: the
|
||||||
|
# push stream must not be compressed or buffered.
|
||||||
|
gzip on;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_comp_level 5;
|
||||||
|
gzip_min_length 1024;
|
||||||
|
# ihasmail serves scripts as text/javascript, so listing only
|
||||||
|
# application/javascript silently leaves the largest asset uncompressed.
|
||||||
|
gzip_types
|
||||||
|
application/javascript
|
||||||
|
application/json
|
||||||
|
application/manifest+json
|
||||||
|
image/svg+xml
|
||||||
|
text/css
|
||||||
|
text/javascript
|
||||||
|
text/plain;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://127.0.0.1:8080;
|
proxy_pass http://127.0.0.1:8080;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
|
|||||||
Reference in New Issue
Block a user