我们目前在Nginx集群上将GKE与第4层TCP负载均衡器一起使用。 nginx中的虚拟主机配置如下所示:
verticalalignment='bottom'
使用此nginx.conf:
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name dev.pewpew.host;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets on;
ssl_session_ticket_key /etc/ssl/certs/random.key;
ssl_certificate /etc/ssl/certs/pewpew.fullchain.pem;
ssl_certificate_key /etc/ssl/certs/pewpew.private.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1 TLSv1.2 TLSv1.3;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_buffer_size 1400;
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4;
# HSTS
add_header Strict-Transport-Security max-age=15768000;
# 1 month caching
expires 1M;
add_header Cache-Control public;
location / {
root /app;
index index.html index.htm;
}
}
SSL实验室测试告诉我们,我们使用该配置命中了A +,并为支持它的浏览器启用了h2:https://www.ssllabs.com/ssltest/analyze.html?d=dev.pewpew.host
其他测试也表明服务器已支持h2和gzip:https://tools.keycdn.com/http2-test告诉我们服务器已启用http / 2,https://checkgzipcompression.com/?url=https%3A%2F%2Fdev.pewpew.host告诉我们gzip可以工作。
现在出现问题:我们有3台不同的计算机,都运行相同版本的Chrome,只有一台使用gzip的h2。其他人只获得http / 1.1,没有任何压缩。
Chrome浏览器还通过网络事件告诉我,其他网站(大多数是ssl实验室和google自己的网站)都使用http / 2流。
//编辑
从其中一个JS文件添加标题屏幕截图,显示浏览器通过Accept-Encoding请求gzip:
//编辑2
我们发现了2台主机未获得h2的问题。他们安装了eset,默认情况下启用了SSL mitm。禁用将为那些计算机启用h2。 http 1.1上的gzip问题仍然存在。