使用 nginx 作为前端从 akka(playframework)获取非法主机头

get Illegal host header from akka (playframework) with nginx as frontend

我明白了

Illegal 'host' header: Invalid input ':', expected DIGIT or 'EOI' (line 1, column 4): 0:0:0:0:0:0:0:0:9000

来自 akka.actor.ActorSystemImpl。我使用 nginx 作为 ssl 的前端,配置文件包含:

        proxy_buffering    off;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   Host $http_host;
        proxy_http_version 1.1;

        upstream my-backend {
          server localhost:9000;
        }


        location / {
          proxy_pass  http://my-backend;
          proxy_set_header Host www.example.com;
        }

with nginx version: nginx/1.10.3 (Ubuntu) and play 2.7.4 重新启动 nginx 并播放服务器后出现此错误... 该网站不再可用 非常感谢任何帮助或提示。谢谢

在 nginx.conf 中将本地主机从 IPv6 更改为 IPv4 地址 (0:0:0:0:0:0:0:0 -> 127.0.0.1)。仍然不知道为什么现在会弹出此错误以及为什么 proxy_set_header 不起作用)

您收到错误是因为您要求 Nginx 将主机名 + 端口包含到下游主机:

proxy_set_header 主机 $http_host;

IIRC,$http_host 还包括端口号。尝试改用 $host,看看是否可行。