HTTP2 not working in nginx


Finally decided to switch to http / 2. Everything is in order on my computer and android smartphone. But I noticed that on the iPhone in Safari and through a proxy, the site simply does not open. White screen. Why is this happening? And is it possible to do non-forced http2 if possible?

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    listen 80;
    location / {
        limit_conn addr 10;
        if ($http_host ~ "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}") {
            return 444;
        rewrite ^(.*)$$1 permanent;

server {
    listen 443 ssl http2;

    root /var/www/;
    index index.php index.html;

    client_body_timeout 5s;
    client_header_timeout 5s;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;

    location ~ /\.ht {
        deny all;

    location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ {
        access_log        off;
        expires           max;

    ssl on;
    ssl_certificate         /etc/ssl/jamesjgoodwin.crt;
    ssl_certificate_key     /etc/ssl/jamesjgoodwin.key;


Problems with ssl settings. Use . In the "Handshake Simulation" section of your domain test, you can find behavior for different browsers and operating systems. On the same site you can find the recommended settings for ssl.

Scroll to Top