【问题标题】:Rails 5 actioncable freezes the serverRails 5 actioncable 冻结服务器
【发布时间】:2016-11-22 01:27:54
【问题描述】:

每次我挂载 actioncable 时,我都在 nginx 服务器上运行 Actioncable 时遇到问题

mount ActionCable.server => '/cable'

服务器会返回

Started GET "/cable" for ::1 at 2016-05-24 11:42:16 -0400
Started GET "/cable/" [WebSocket] for ::1 at 2016-05-24 11:42:16 -0400
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)

冷冻前

感谢任何帮助!

【问题讨论】:

标签: ruby-on-rails nginx websocket actioncable


【解决方案1】:

当我的应用程序被许多用户使用时,我遇到了同样的问题。我的问题来自一起使用 Puma 和 Phusion Passenger。通过从我的应用程序中删除 Puma 并将 Nginx 配置为使用带有 Passenger 的 Action Cable 来解决此问题。

This article概述了Action Cable+Nginx+Passenger的正确配置方式

【讨论】:

    【解决方案2】:

    我有同样的问题。 Rails 服务器在连接后冻结 这对我有用 在 config.ru 文件中

    if defined?(PhusionPassenger)
      PhusionPassenger.advertised_concurrency_level = 0
    end
    

    想法是将并发级别设置为 0

    最初我只在 nginx.conf 文件中为有线服务器设置并发级别 0

    希望这可以挽救某人的一天

    【讨论】:

    • cable/config.ru 中的哪个位置?在run ActionCable.server 之前或之后。此外,如果我的池大小较低(6),这将无法正常工作。更大的尺寸(比如 16 号)适合我。
    【解决方案3】:

    如果你使用 puma + nginx + rails 你应该使用: 在 nginx conf 中的虚拟主机中

        # enables WS support
    location /cable {
        proxy_pass http://cable;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_redirect off;
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多