2 votes

Nginx avec http2 et ios WKWebView

Nous utilisons nginx sur un système debian comme loadbalancer.

nginx version: nginx/1.9.10
built with OpenSSL 1.0.2e 3 Dec 2015 (running with OpenSSL 1.0.2g  1 Mar 2016)

Nous avions activé http2 dans notre serveur comme ceci :

server {
   listen 443 ssl http2;
   ....
}

Toutes les demandes sont transmises à notre serveur d'application. Nous enregistrons les request_time y upstream_time de nginx.

Nous avons récemment fait passer notre application hybride iOS de UIWebView à WKWebView au cours de la semaine 13, voyez ce qui s'est passé :

enter image description here

Le temps en amont (upstream_time) est resté le même, mais notre temps de requête a soudainement augmenté, car de plus en plus d'utilisateurs ont mis à jour leur application vers la nouvelle version.

Aujourd'hui, nous avons décidé d'essayer et de désactiver http2. Nous avons seulement supprimé le mot "http2" de la configuration de notre serveur :

server {
   listen 443 ssl;
   ....
}

Voir ce qui s'est passé :

enter image description here

Il semble que http2 ne soit pas prêt pour la production. Je ne sais pas si c'est du côté du serveur ou du côté du client. Peut-être même que l'heure de la requête n'est pas correctement enregistrée dans nginx.

Quelqu'un a-t-il plus d'informations sur l'utilisation de http2 avec nginx et/ou WKWebView ?

3voto

Jarrod Points 562

La recherche suggère Il y a un bogue dans le paquetage Ubuntu/Debian nginx qui cause de faibles performances http2. vous devez utiliser une distribution alternative / compiler soi-même nginx à partir du code source (c'est très facile et cela prend environ 5 minutes de votre temps).

Pour debian, vous devrez peut-être remplacer cette ligne de configuration dans ce guide de construction avec quelque chose comme :

 ./configure --with-cc-opt='-march=native -O2 -pipe' --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-pcre-jit --with-ipv6 --with-file-aio --with-ipv6 --with-http_v2_module --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module -with-http_v2_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --user=www-data --group=www-data --with-openssl=../openssl-1.0.2h --add-module=../nginx-http-auth-digest --add-module=../ngx_cache_purge --add-module=../ngx_pagespeed-release-1.11.33.2-beta

Vous pouvez également utiliser n'importe quel guide récent sur l'internet. Il doit contenir une construction avec OpenSSL 1.0.2h ou une version plus récente, sinon il n'est tout simplement pas assez récent. En voici un qui devrait faire l'affaire : https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/

0voto

VBart Points 8009

Le temps de réponse moyen devrait être plus long avec HTTP/2, car il comporte des frais généraux plus importants en raison d'une autre couche de multiplexage.

-1voto

L'équipe de l'IETF suit l'évolution de la prise en charge des clients et des serveurs : https://github.com/http2/http2-spec/wiki/Implementations

WKWebView n'est pas encore marqué comme supporté. Il fonctionne cependant très bien sur d'autres navigateurs mobiles.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X