Назад | Перейти на главную страницу

Nginx с включенным HTTP2 скачивает все

Недавно я обновил nginx до 1.9.7, который поддерживает http2.

При включении http2 на одном из моих виртуальных хостов вместо этого загружается каждая страница, которую nginx должен обслуживать с этого виртуального хоста. Я тестировал это в последней версии Chrome, Safari и Chrome для Android. У всех был одинаковый результат загрузки и сохранения имени страницы, к которой я перешел, даже если страница на самом деле не существует на сервере. Страница, сохраненная на компьютере, никогда не содержала фактического содержимого на сервере. Это был какой-то странный файл, содержащий такую ​​же странную строку размером 1 КБ). Я пробовал тестировать разные расширения, чтобы убедиться, что это не проблема с php-fpm, каждое расширение загружено.

Конфигурация vhost:

server {
    listen          <ip>:80 http2;
    server_name     testsite.dev;

    index   index.php index.html index.htm;
    root /home/sites/test/www;

    access_log /var/log/nginx/sites/testsite-access_log;
    error_log /var/log/nginx/sites/testsite-error_log;

#   location / {
#               try_files $uri $uri/ /index.php;
#   }

    location = /favicon.ico {
            access_log off;
            log_not_found off;
    }

    gzip off;

    location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/run/php-fpm/testsite.socket;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param open_basedir "/home/sites:/tmp:/usr/share/pear:/var/lib/php/session/";
    }

}

Если я удалю http2 из listen директиве сайт работает на 100% должным образом и обслуживает файлы в обычном режиме.

Любое понимание, почему это происходит? Поиск в Google, похоже, дает результаты только о загружаемых файлах .php (из-за неправильно настроенного php-fpm).

Изменить: загружаемый файл всегда имеет следующее:

При открытии в TextEdit:

ġˇˇˇˇˇˇ

При открытии в Sublime Text 3:

0000 1204 0000 0000 0000 0300 0000 8000
047f ffff ff00 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01

Обычно ожидается, что http2 будет работать через ssl / tls, и Chrome, и Firefox поддерживают только зашифрованный http2.

Вы получаете ту же ошибку при добавлении http / 2 в ssl, т.е. listen 443 ssl http2