Как использовать push-сервер nginx http / 2 для отправки полезной нагрузки json из вызова API клиенту - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть простая конфигурация nginx, подобная приведенной ниже, и мне нужно вернуть определенную версию полезной нагрузки json и отправить ее в браузер вместе с запрошенным demo.html, когда клиент делает запрос на /demo.html?version={some_version}. У меня есть конечная точка REST, которую я могу использовать, чтобы получить правильный JSON. Однако я не могу найти документацию о том, как это сделать.

server {
    listen 443 ssl;
    server_name localhost;

    ssl_certificate /etc/nginx/ssl/example.crt;
    ssl_certificate_key /etc/nginx/ssl/example.key;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    location = /demo.html?version=x {
        http2_push payload_x.json; # need to make a call to get a json and push
    }
}

Можно ли даже серверу динамически выдавать полезную нагрузку json в nginx?
Если так, то как бы это сделать?

1 Ответ

0 голосов
/ 30 сентября 2019

Да, можно отправить файл JSON. И да, вы бы сделали это, как вы сказали, но убедитесь, что вы указали полный путь (поэтому, по крайней мере, должны начинаться с /):

http2_push /payload_x.json;

Чтобы задать переменную x на основе запроса версииparam, вы должны иметь возможность использовать $arg_version:

http2_push /payload_$arg_version.json;

Вам не нужно будет запрашивать файл JSON из браузера, но тогда он будет выбирать ресурс push, а не запрашивать его полностьюс серверов.

...