gpt4 book ai didi

ruby-on-rails - ActionCable Rails 5(乘客)-失败 : Error during WebSocket handshake: Unexpected response code: 404

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

我正在尝试将 ActionCable 和 Rails 5 部署到生产服务器 (DigitalOcean)。我已按照此处 Gorails 视频中提到的所有步骤进行操作:https://gorails.com/episodes/deploy-actioncable-and-rails-5

该应用程序是使用 Phusion Passenger + Nginx + Capistrano 部署的。

当我尝试在生产中检查我的网站时,我在浏览器的控制台上收到此错误:
WebSocket connection to 'ws://139.59.175.34/cable' failed: Error during WebSocket handshake: Unexpected response code: 404
这些是我的设置:

/etc/nginx/sites-enabled/default

server {
listen 80;
listen [::]:80 ipv6only=on;

server_name my_server_domain;
passenger_enabled on;
rails_env production;
root /home/deploy/my_app_domain/current/public;

# ActionCabel config (disable this if u r not using it)
location /cable {
passenger_app_group_name actioncable_websocket;
passenger_force_max_concurrent_requests_per_process 0;
}

# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

生产.rb
config.action_cable.url = "/cable"
config.action_cable.allowed_request_origins = ["http://139.59.175.34"]

cable.js
(function() {
this.App || (this.App = {});

App.cable = ActionCable.createConsumer("/cable");

}).call(this);

我试图更改 config/production.rb 上的 ActionCable 配置到:
  config.action_cable.url = [/ws:\/\/*/, /wss:\/\/*/]
config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/]

但仍然没有运气。

我还查看了服务器上的 production.log,这是记录的错误:
WebSocket error occurred: One or more reserved bits are on: reserved1 = 1, reserved2 = 0, reserved3 = 0

更新:

以下是服务器上的防火墙设置:

enter image description here

最佳答案

您的配置看起来正确。

如果您正在运行防火墙,则可能会发生此问题。

检查你的 iptables 配置(linux)是否有什么东西阻止了它(虽然我没有特定的代码行给你)。

如果您使用的是 Windows,请检查是否有“防病毒”或“防火墙”拦截/阻止这些位。我听说 Node32 是阻止 websockets 的一个很好的候选者。

更新:您也可以尝试使用 wss://139.59.175.34/cable 连接吗?而不是 ws://139.59.175.34/cable ? (确保您的 NGinx 使用 SSL 进行代理)。 https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/

关于ruby-on-rails - ActionCable Rails 5(乘客)-失败 : Error during WebSocket handshake: Unexpected response code: 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175211/

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