amazon-web-services - pricing - tipos de elb
¿Alguien ha logrado que SPDY trabaje detrás de Amazon ELB? (2)
Hacer SSL -> SSL no envía todos los paquetes TCP a su servidor web. AWS descifra los paquetes usando el certificado y lo vuelve a cifrar. Su backend solo recibe los paquetes modificados. La opción viable es cambiar los protocolos a TCP, pero necesitará el parche proxy nginx para los encabezados http o para que funcione mejor.
También tengo el mismo problema y estoy esperando que AWS habilite la negociación NPN en ELB o que nginx agregue el parche accept-proxy a su módulo.
Hemos estado usando nginx compilado con el módulo spdy desde hace algún tiempo y, a pesar de ser solo el borrador 2 de las especificaciones, estamos bastante satisfechos con su rendimiento.
Sin embargo, ahora tenemos la necesidad de escalar horizontalmente y hemos puesto nuestras instancias EC2 detrás de Elastic Load Balancer.
Como ELB no es compatible con el protocolo NPN, hemos configurado a los oyentes para lo siguiente:
SSL 443 -> SSL 443
También hemos habilitado el nuevo protocolo proxy como se describe aquí:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html
Todo funciona completamente bien con esta configuración. Nuestra aplicación tiene un balance de carga exitoso en todas nuestras instancias.
Sin embargo, al ejecutar http://spdycheck.org/ , informa que SPDY no está habilitado. Sin embargo, si señalo spdycheck a la IP elástica de una sola instancia, informa correctamente que SPDY está habilitado.
Cualquier ayuda sería muy apreciada.
Acabamos de lanzarlo anoche en https://www.ritani.com . Necesitarás una versión de nginx que admita spdy y proxy_protocol. Estamos en 1.6.2.
A través de AWS CLI, agregue y adjunte proxy_protocol a su ELB. http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html#enable-proxy-protocol-cli
A través de la interfaz de usuario web de AWS para ese ELB, elimine los 443 oyentes. Agregue un nuevo oyente como TCP 443 -> TCP 443.
En tu bloque de servidor de configuración nginx:
listen 443 ssl spdy proxy_protocol;
add_header Alternate-Protocol 443:npn-spdy/3;
all the standard ssl directives...
Para obtener el grapado ocsp, tuve que usar tres certs. La forma estándar de concatenar my.crt y my.intermediate.crt no funcionó. Tuve que separarlos de la siguiente manera.
ssl_certificate /etc/nginx/ssl/my.crt;
ssl_certificate_key /etc/nginx/ssl/my.private.key;
ssl_trusted_certificate /etc/nginx/ssl/my.intermediate.crt;
Por último, intercambie las instancias de $remote_addr
con $proxy_protocol_addr
. $ remote_addr ahora es elb y $ proxy_protocol_addr es la IP del cliente remoto.