У меня возникла проблема с потерей заголовков nginx для серверной части при использовании протокола http2 на nginx (обычный HTTP-сервер для Wildfly 10). Приведенная ниже конфигурация работает при удалении параметра http2, и когда параметр http2 включен, внешний интерфейс, по-видимому, работает, но сервер не получает заголовков от клиента. Я также попытался добавить параметр: proxy_http_version 1.1 без эффекта.
Должен ли nginx к бэкэнд-соединению также использовать протокол http2 для передачи заголовков? Я понял, что обычно используют только http2 до интерфейса nginx.
upstream backend {
# Use IP Hash for session persistence
ip_hash;
# List of Wildfly application servers
server backend:8080;
}
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name site.domain.com;
keepalive_timeout 70;
# Proxy settings
proxy_read_timeout 120;
proxy_set_header Host $http_host;
proxy_pass_request_headers on;
underscores_in_headers on;
# SSL settings
ssl on;
ssl_certificate /etc/ssl/cert.crt;
ssl_certificate_key /etc/ssl/key.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 30m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
return 404;
}
location /WebContext {
proxy_pass http://backend;
}
}