nginx support for http/1.1 backend
Ryan Malayter
malayter at gmail.com
Tue Oct 19 17:04:04 MSD 2010
On Tue, Oct 19, 2010 at 6:54 AM, Splitice <mat999 at gmail.com> wrote:
> Seconded. Also the ability to cache gzip is a must
This can be done in nginx now by "layering" two nginx server blocks
together. The "front" one implements proxy_cache, while the back one
does compression and talks to the origin server. You get twice the
number of connections when you're actually talking to a back-end, but
if your cache hit ratio is high, that shouldn't matter and the
connections are very short-lived.
You should also "normalize" the incoming accept-encoding headers to
either "gzip" or "", and use that as part of the proxy cache key.
Something like this (untested syntax):
#frontend configuration which talks to client and caches
server {
listen 80
set $myacceptencoding "";
if ($http_accept_encoding *~ "gzip") {
set $myacceptencoding "gzip";
}
location / {
proxy_set_header "Accept-Encoding" $myacceptencoding;
proxy_cache my_cache_zone_name;
proxy_cache_key "$scheme$host$request_uri$myacceptencoding"
proxy_pass http://127.0.0.01:10080
}
}
#backend server block which talks to origin and compresses
server {
listen 10080
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/css text/javascript text/xml application/x-javascript;
location / {
proxy_pass http://realbackend
}
}
--
RPM
More information about the nginx
mailing list