gpt4 book ai didi

amazon-web-services - Elastic Beanstalk 运行状况严重,失败并显示代码 400 -- 即使我可以访问我的网站

转载 作者:行者123 更新时间:2023-12-04 14:41:04 24 4
gpt4 key购买 nike

我有一个在 Elastic Beanstalk 上运行的 Django 应用程序。我可以访问我的网站没问题 example.com .我已经设置了自动 https 重定向,所以它总是指向 https。我已经设置好了,所以你不能查看站点 example.elasticbeanstalk.com域——如果你去那里,你最终会得到响应代码 400。

我的自动缩放组是负载平衡的。我的应用程序未通过状态代码 400 的运行状况检查,即使我可以导航到我的站点,响应代码 200 没有问题。我的日志显示:
***amazon IP*** (-) - - [date] "GET / HTTP/1.1" 400 26 "-" "ELB-HealthChecker/2.0"
我猜这个错误要么来自

  • 不允许连接在 example.elasticbeanstalk.com
  • Haivng 自动 HTTP -> HTTPS 重定向(虽然我猜这会产生 302)

  • 当健康检查 ping 一个站点时,它是在 ping 您的自定义域 ( example.com ) 还是在 ping elasticbeanstalk.com领域?我能做些什么来解决这个问题或进一步诊断错误?我宁愿不让交通在 elasticbeanstalk.com域,因为我认为我无法获得 SSL。

    最佳答案

    失败的原因是健康检查检查 EC2 实例私有(private) IP。这可以随 ELB 改变,因此您需要动态获取实例的私有(private) IP 并将其添加到主机。见 How to dynamically add EC2 ip addresses to Django ALLOWED_HOSTS

    import requests
    EC2_PRIVATE_IP = None
    try: EC2_PRIVATE_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4', timeout=0.01).text
    except requests.exceptions.RequestException: pass
    if EC2_PRIVATE_IP: ALLOWED_HOSTS.append(EC2_PRIVATE_IP)

    (可能)错误答案

    我在另一个 SO post 找到了这个答案.虽然它解决了问题,但我认为这不是一个好的答案并且可能不安全。

    如果您将此代码添加到您的 .ebextensions/something.config文件,它会将来自 Health Checker 的具有特定状态请求的任何请求重定向到您的域。
    files:
    "/etc/httpd/conf.d/eb_healthcheck.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
    <If "req('User-Agent') == 'ELB-HealthChecker/2.0' && %{REQUEST_URI} == '/status/'">
    RequestHeader set Host "sub.example.com"
    </If>

    更换 /status/使用 Config -> Loan Balancer -> Health Check Path 中指定的健康检查 URL , 和 sub.example.com与您的域。他们还更新了健康检查器,所以它是 ELB-HealthChecker/2.0现在 - 另一件需要注意的事情。

    但是:出于安全原因,这可能不是很好,我认为这可能是欺骗性的。如果您使用的是默认 /链接,有人可以恶搞 ELB-HealthChecker/2.0然后轻松猜出您的链接。我不太熟悉有人可以用 set Host 做什么命令,它可能是无害的。

    关于amazon-web-services - Elastic Beanstalk 运行状况严重,失败并显示代码 400 -- 即使我可以访问我的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739178/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com