首页 > 解决方案 > AWS Elastic Beanstalk 中发生“冲突的服务器名称“localhost””和“损坏的标头”错误

问题描述

我正在尝试从保存的配置创建一个新的 AWS Elastic Beanstalk 环境。该平台是 Amason Linux 和 Ruby on Rails。环境生成的 EC2 实例位于负载均衡器后面。实例上正在运行一个 API 服务器,我们的前端 Web 通过 HTTP 方法与 API 服务器通信:GET、POST、...

在 API 服务器的源代码中,我们使用 file .ebextensions。负载均衡器部分.exbextensions设置如下:

Resources:
  AWSEBLoadBalancer:
    Properties:
      Listeners:
        - InstancePort: 80
          InstanceProtocol: HTTP
          LoadBalancerPort: 80
          Protocol: HTTP
      AccessLoggingPolicy:
        EmitInterval: 5
        Enabled: true
        S3BucketName:
          Ref: LogsBucket
    Type: "AWS::ElasticLoadBalancing::LoadBalancer"
    DependsOn: "LogsBucketPolicy"

并且里面的nginx.exbextensions配置为:

/etc/nginx/conf.d/proxy.conf:
content: |
  client_max_body_size 500M;
  server_names_hash_bucket_size 128;

  upstream backend {
    server unix:///var/run/puma/my_app.sock;
  }

  server {
    listen 80 proxy_protocol;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    large_client_header_buffers 8 32k;

    set_real_ip_from 10.0.0.0/8;
    real_ip_header proxy_protocol;

    location / {
      proxy_http_version 1.1;
      proxy_set_header X-Real-IP $proxy_protocol_addr;
      proxy_set_header X-Forwarded-For $proxy_protocol_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_buffers 8 32k;
      proxy_buffer_size 64k;
      proxy_pass http://backend;
      proxy_redirect off;

      # Enables WebSocket support
      location /v1/cable {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "Upgrade";
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
      }
    }
  }

在环境配置中,负载均衡器设置如下,添加了 AWS SSL 证书。

在此处输入图像描述

创建环境后,会自动创建实例和负载均衡器。实例的健康状态为 Ok。

在此处输入图像描述

我打开前端应用程序并尝试使用我的帐户登录,但登录失败。我检查了环境的日志,发现以下错误。

在此处输入图像描述

当我使用连接到相同 AWS 后端(EB 工作者、数据库等)的旧环境时,一切正常。负载均衡器和网络的配置似乎有问题...您能提供一些想法吗?

标签: amazon-web-servicesnginx

解决方案


推荐阅读