Nginx com http2 e ios WKWebView

2

Estamos executando o nginx em um sistema debian como nosso 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)

Tivemos http2 ativado em nosso servidor assim:

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

Todas as solicitações são intermediadas por proxy para o nosso servidor de aplicativos. Estamos registrando o request_time e upstream_time do nginx.

Mudamos recentemente nosso aplicativo híbrido para iOS do UIWebView para o WKWebView na Semana 13, veja o que aconteceu:

Oupstream_timepermaneceuomesmo,masnossotempodesolicitaçãoaumentoudeformarepentinaàmedidaquemaisemaisusuáriosatualizavamoaplicativoparaanovaversão.

Hojedecidimosexperimentá-loedesativarohttp2.Apenasremovemosapalavra"http2" da configuração do nosso servidor:

server {
   listen 443 ssl;
   ....
}

Veja o que aconteceu:

Parece que o http2 não está pronto para produção. Não sei se é do lado do servidor ou do lado do cliente. Talvez até mesmo o request_time não esteja logado corretamente dentro do nginx.

Alguém tem mais informações sobre como usar http2 com nginx e / ou WKWebView?

    
por Janning 07.04.2016 / 17:11

3 respostas

3

A pesquisa sugere existe um bug no pacote nginx do Ubuntu / Debian que causa baixo desempenho de http2 , você precisa usar uma distribuição alternativa / compila o nginx do código-fonte (é muito fácil e demora uns 5 minutos do seu tempo).

Para o debian, você pode ter que substituir essa linha de configuração nesse guia de construção com algo como:

 ./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

Ou apenas use qualquer guia recente na internet. Ele deve ter uma versão do OpenSSL 1.0.2h ou superior, ou simplesmente não é recente o suficiente. Aqui está um que deve fazer: link

    
por 14.08.2016 / 11:29
0

Espera-se que o tempo médio de resposta seja maior com o HTTP / 2, porque ele tem uma sobrecarga maior devido a outra camada de multiplexação.

    
por 14.08.2016 / 11:08
-1

A equipe da IETF está acompanhando o cliente & suporte a servidores aqui: link

O WKWebView ainda não está marcado como suportado. Funciona bem em outros navegadores móveis.

    
por 15.06.2016 / 23:02

Tags