Смешивание http и http2 под одним сервером на nginx - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь использовать один сервер на nginx, который обслуживает как маршруты http2, так и традиционные маршруты http1, моя проблема в том, что я не могу заставить его играть хорошо.

Когда я пытаюсь получить доступ к своему приложению наВ подпапке, которая запускается на gunicorn + flask, я получаю файл загрузки с каким-то двоичным файлом

Как я могу обслуживать оба?


    server {
        listen 80 http2;

        access_log /dev/stdout main;
        rewrite_log on;
        error_log /dev/stdout debug;

        location /some.Service {
            grpc_pass grpc://srvadd:10116;
        }

        location /password-reset {
            proxy_pass http://flask:8000;
        }
    }

1 Ответ

0 голосов
/ 06 марта 2019

хм, обслуживание трафика http и http2 на одном сервере nginx должно работать.Это один из примеров nginx.conf, который работает для нас

server {
    listen 8080;
    listen 8443 http2;
    server_name localhost;

    location / {
      grpc_pass localhost:9090;
    }
  }

Я не совсем уверен, но работает ли порт 80 с http2?Я думаю, что может быть какое-то ограничение на то, какой номер порта вы можете использовать с http2?

еще один более сложный пример

  server {
    listen [::]:$0;
    listen [::]:$1 http2;
    server_name localhost;
    location /grpc.gateway.testing.EchoService/ {
      grpc_pass localhost:$2;
      grpc_channel_reuse on;
      grpc_ssl $3;
      grpc_ssl_target_name_override $4;
      grpc_ssl_pem_root_certs "$5";
      grpc_ssl_pem_private_key "$6";
      grpc_ssl_pem_cert_chain "$7";
      grpc_client_liveness_detection_interval 10ms;
      add_header Access-Control-Allow-Origin * always;
    }
  }
...