Comments (1)
Oh I figured out a way to do this, via proxying through 3 layers. Starting from the third (last layer), it makes the request to the origin with compressing with gzip, then flows back upstream (layer 2) to gunzip, and finally back to layer one to compress with Brotli.
This seems like a hack... so I'll leave this issue open for anyone to tell me how the following code violates the geneva conventions. Please let me know if there's better alternatives.
http {
server {
brotli on;
brotli_comp_level 11;
brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
listen 80;
location / {
proxy_pass http://127.0.0.1:81/;
proxy_http_version 1.1;
}
}
server {
listen 81;
location / {
proxy_pass http://127.0.0.1:82/;
proxy_http_version 1.1;
proxy_set_header Accept-Encoding "";
}
}
server {
listen 82;
gunzip on;
location / {
resolver kube-dns.kube-system.svc.cluster.local;
proxy_pass http://MYSERVICE.default.svc.cluster.local:8080/;
proxy_http_version 1.1;
proxy_set_header Accept-Encoding "gzip";
}
}
}
from ngx_brotli.
Related Issues (20)
- Why on earth is this so complicated to install in Ubuntu AND have it auto-update? HOT 5
- nginx only uses br if content-length response header is missing HOT 1
- Use-After-Free problem HOT 5
- Does not compile on Debian 12 / Bookworm HOT 5
- Statically compiled installation fails HOT 13
- make[1]: Nothing to be done for 'modules' HOT 1
- cannot find -lbrotlienc HOT 3
- Statically compiled failure on debian 11 ARM HOT 1
- Still "make[1]: Nothing to be done for 'modules'" after PR HOT 6
- Statically compiled module fails to compile on arm64 HOT 2
- Brotli throwing errors on make modules: Ubuntu 22.04 HOT 4
- ''' /tmp/ngx_brotli/filter/ngx_http_brotli_filter_module.c: In function 'ngx_http_brotli_header_filter': 136.9 /tmp/ngx_brotli/filter/ngx_http_brotli_filter_module.c:322:4: error: 'ngx_table_elt_t' has no member named 'next' 136.9 322 | h->next = NULL; 136.9 | ^~ HOT 9
- nginx 1.25.2 rpm build (Fedora/COPR) + brotli/master as dynamic module FAIL: error: Brotli library is missing ... HOT 6
- compile failed with nginx when cmake build brotli return plugin needed to handle lto object HOT 6
- Statically compiled instructions fail for armv7 on raspberry pi 4 HOT 1
- Docs / readme improvement: clarify behavior with reverse proxied backends
- Build errors for dynamic module on Ubuntu 20.04 on Raspeberry Pi 4 ARM. HOT 4
- cmake failed on macos HOT 1
- Critical issue on nginx worker exited on signal 4 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ngx_brotli.