【问题标题】:Amazon Elastic BeansTalk Nginx configurationAmazon Elastic BeansTalk Nginx 配置
【发布时间】:2015-02-23 09:46:33
【问题描述】:

我一直在寻找如何配置 nginx 代理服务器以使用 websockets 的解决方案。我已经准备好找到一堆解决方案。但是,这些脚本会在实例中修补 nginx.conf。但是我的实例没有运行 nginx。 Nginx 在平衡器上运行。

所以我的问题是如何在平衡器上修补 nginx 配置。

【问题讨论】:

  • 你说的是什么类型的平衡器?我不认为它是 aws Elastic Load Balancing (ELB)
  • 我们在 ELB 后面安装了 nginx 的 t2.micro 实例。它允许我们在 nginx 上做自定义的平衡逻辑。您也可以通过安装 nginx 将 ElasticIP 直接绑定到您的实例,并且根本不使用 ELB,但是这是非常危险的,ELB 更安全,但是我们基于实例的平衡器可以在没有任何停机时间的情况下工作超过几年。无论如何,请尝试在serverfault.com 上提出您的问题以获得更好的建议。亚马逊团队在支持方面也非常出色,详细描述您的任务,他们肯定会提供帮助。无论如何,使用 nginx 作为平衡器的自定义实例可以做到这一点:)
  • @BMW 我无法解释什么类型的平衡器(这就是我问这个问题的原因)。任何可以为我传递 websocket 的平衡器。
  • 那么如果你不知道,你怎么能坚持负载均衡器上已经安装了nginx呢?
  • 我需要配置nginx代理来传递websockets,但是无法配置。只有我们可以在控制台中做(端口 80/443、ssl、会话粘性)

标签: amazon-web-services nginx amazon-elastic-beanstalk


【解决方案1】:

您的问题令人困惑,因为您说您正在使用 ELB 并且您想要 Nginx。但是你不能用普通的 ELB 在 Nginx 中获取 websockets,你可能不需要 Nginx 和 ELB,除非在特定情况下。

你有两个选择:

1) 继续使用 ELB 和 Elasticbeanstalk。问题是 ELB 根本不支持 websocket。见this article。您需要停止将 ELB 用作 HTTP 代理,并开始将其用作 TCP 代理。不利的一面是,您的应用程序现在将暴露给您的服务器上下移动。 (在 HTTP 代理中,每个请求都可以发送到不同的服务器。在 TCP 代理中,请求在整个会话期间都保持活动状态,因此当服务器出现故障时,您的客户端必须“处理它”。)

2) 运行您自己的负载均衡器。最佳实践是 EIP + Nginx + HAProxy。这是一个完全不同的问题。

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 2018-02-27
    • 2020-08-27
    • 2013-06-23
    • 2014-11-22
    • 2019-09-24
    • 2019-01-01
    • 2014-04-24
    • 2021-08-22
    相关资源
    最近更新 更多