Gzip Serveur proxy inversé Nginx Pour le client

J'ai un serveur Web IIS 6.0, connecté à Internet qui ne remplit pas une compression fiable Gzipping. Je sais qu'il est vieux, mais tout est avec ce que j'ai besoin de travailler pour cette instance.

Ce que je veux faire, c'est le mettre Nginx (ou similaire) de face IIS En tant que serveur de proxy inversé et serveur de mise en cache pour accélérer le travail du site. Cependant, je ne suis pas sûr que vous pouvez utiliser l'archiveur GZIP nginx Pour un navigateur Web. Si un IIS transmet des demandes GZIP à nginx, Ils sont normalement renvoyés au navigateur.

gzip                on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_http_version 1.0;
gzip_disable "msie6";
gzip_types text/plain text/css;
gzip_vary on;

location / {
proxy_set_header x-real-IP $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header host $host;
proxy_pass [url=http://192.168.5.37;]http://192.168.5.37;[/url]
}

Demande HTTP (/css/components.css)

GET /css/components.css HTTP/1.1
Host: www.mydomain.co.uk
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6

Http-réponse (/css/components.css)

HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Thu, 22 Oct 2015 14:26:08 GMT
Content-Type: text/css
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Last-Modified: Sat, 22 Aug 2015 09:36:54 GMT
ETag: W/"07f8614bedcd01:8beb"
X-Powered-By: ASP.NET

Y a-t-il une sorte de paramètre magique qui manque à moi quelque part afin de pouvoir presser des fichiers dans nginx?

Remercier!

doyen
Invité:

Eugene

Confirmation de:

Vous pouvez ajouter

gzip_proxied any;

Directive à votre Conf.

Éditer:

Mon test:

J'ai installé un simple serveur http (qui lui-même ne peut pas archiver) sur ton ordinateur (192.168.122.1) de

python -m http.server 8080

. Quand je le demande, je reçois:

[pat@morbier ~]$ curl -I -H 'Accept-Encoding: gzip,deflate' [url=http://192.168.122.1:8080/]http://192.168.122.1:8080/[/url]
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.5.0
Date: Thu, 22 Oct 2015 17:41:39 GMT
Content-type: text/html; charset=utf-8
Content-Length: 1197

J'ai mis en place un proxy avec nginx (192.168.122.224)

gzip_min_length     1000;
gzip_buffers 4 8k;
gzip_http_version 1.0;
gzip_disable "msie6";
gzip_types text/plain text/css;
gzip_vary on;

location / {
proxy_set_header x-real-IP $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header host $host;
proxy_pass [url=http://192.168.122.1:8080;]http://192.168.122.1:8080;[/url]
}

Quand je demande la même chose avec un proxy, je reçois

[pat@morbier ~]$ curl -I -H 'Accept-Encoding: gzip,deflate [url=http://192.168.122.224/]http://192.168.122.224/[/url]
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Thu, 22 Oct 2015 17:46:08 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1197
Connection: keep-alive

Puis ajouter à la confection

gzip on;
gzip_proxied any;

Et je reçois

[pat@morbier ~]$ curl -I -H 'Accept-Encoding: gzip,deflate' [url=http://192.168.122.224/]http://192.168.122.224/[/url]
HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Thu, 22 Oct 2015 17:47:54 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Content-Encoding: gzip

Vous pouvez également le voir si vous tordre sans -I (Pour obtenir la page entière), Dans mon cas, il s'avère une sorte de fichier binaire affiché sur le terminal, ce qui confirme le fait qu'il soit compressé. Lorsque je tords le site Web habituel sans compression, je reçois le contenu d'une page Web (HTML).

edit2:

En fait, cela ne fonctionne qu'avec vos options incluses, semble-t-il gzip_proxied pas besoin.

Oh, vous demandez, sans passer le titre «Accept-Encoding: gzip, deflate» (Je pense que vous utilisez telnet). Dans ce cas, cela ne fonctionnera pas, car vous ne direz pas le serveur que vous pouvez gérer des fichiers binaires codés avec gzip.

Essayez S. curl, vous êtes les bienvenus.

Daniel

Confirmation de:

Oui, cela peut être fait à coup sûr. J'ai accidentellement appris à ce sujet (dans mon cas iis 8.5, qui a parfaitement travaillé avec gzip Tant que je n'ai pas mis de proxy inverse devant lui nginx, et gzip Du point de vue du navigateur n'a pas été perdu).

Configuration indiquée ici:

https://serverfault.com/q/731014/13716
Assurera l'interaction de vos clients en utilisant gzip et nginx, peu importe ce qui est iis.

Ajustez le pantomime à votre goût.

Pour répondre aux questions, connectez-vous ou registre