Я могу реализовать HTTP / 2 на моем сервере Nginx, который находится в контейнере Docker. Однако я не могу выполнить отправку сервера.
Это файлы конфигурации, которые я написал. / и т. д. / nginx / сайты-доступные / lilstories
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
root /var/www/lilstories;
index Joke.html sniper.html;
server_name x.x.x.x;
location = /Joke.html {
http2_push /var/www/lilstories/YNWA.jpg;
}
}
Инструмент разработчика не отображает Push в столбце инициатора для файла jpg. Ошибки не отображаются в журнале ошибок. Может ли кто-нибудь указать, где я ошибаюсь?
Я предполагаю, что вы используете самозаверяющие сертификаты на основе этого имени конфигурации?
include snippets/self-signed.conf;
Если самозаверяющий сертификат не пользуется доверием в браузере (так вы видите красный замок, через который вы, вероятно, щелкнули?), То кеширование не будет использоваться пользователя Chrome. Это включает в себя Push Cache, необходимый для работы HTTP / 2 Push..
Примите самозаверяющий сертификат в своем хранилище доверенных сертификатов, чтобы получить зеленый замок, и он должен работать.
Это в дополнение к правильному комментарию HBruijn о неправильном использовании синтаксиса.
В http2_push
За директивой следует путь URI, но похоже, что вы указали абсолютный путь в своей файловой системе.
Вместо того:
http2_push /var/www/lilstories/YNWA.jpg;
использовать
http2_push /YNWA.jpg;