我的 NGINX 服务器上的 HTTP2 协议有问题,这是我的配置
listen 443 ssl http2;
server_name adomain.com;
root /var/www/project;
limit_req zone=one burst=60 nodelay;
add_header Strict-Transport-Security "max-age=2592000; includeSubdomains;" always;
ssl_certificate /etc/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
resolver 8.8.8.8;
ssl_stapling on;
ssl_stapling_verify on;
keepalive_timeout 70;
Run Code Online (Sandbox Code Playgroud)
我在我的 iOS 设备(safari 11)上看不到错误,很奇怪网页是一个 SPA(angular),应用程序向 API 发出请求,应用程序通过 HTTP2 加载,但是当应用程序必须向API 失败,禁用listen
HTTP2 使一切正常
两个服务器前端/后端的密码相同
在 Chrome/Firefox/IE 中工作正常,我不知道 Safari 或我的服务器配置有什么问题
Safari 失败时 error.log 和 adomain-error.log 为空
nginx版本
nginx version: nginx/1.12.2
built by gcc …
Run Code Online (Sandbox Code Playgroud)