无法升级到 WebSocket(REQUEST_METHOD:GET,HTTP_CONNECTION:,HTTP_UPGRADE:)
Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: , HTTP_UPGRADE: )
我有一个 Rails 带有 nginx 和 passenger 的应用程序,我已经按照说明进行操作 here 但一直无法升级到 WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: , HTTP_UPGRADE: )
我已经按照文档的建议添加了下面的块
location /cable {
passenger_app_group_name app_name_action_cable;
passenger_force_max_concurrent_requests_per_process 0;
}
但错误仍然存在,而且我已经尝试了所有关于 stackover flow 的解决方案,但没有任何帮助?
redis: &redis
adapter: redis
url: redis://localhost:6379/1
development: *redis
test: *redis
production:
adapter: redis
url: <%= Rails.application.credentials[Rails.env.to_sym][:redis_url] %>
可能您需要在 nginx 配置中进行一些配置?我并没有真正与 passenger 一起工作,但在我的项目中我像这样使用它:
upstream socket_server {
server <your_ip>:<your_port>;
}
location /cable {
proxy_pass http://socket_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
我使用 anycable gem 和 golang
套接字服务器,它可能与 passenger
和默认 actioncable
不同,但可能是我的答案可以帮助您解决问题
(此外,我强烈建议继续 anycable
,因为它消耗的服务器资源最少:))
我有一个 Rails 带有 nginx 和 passenger 的应用程序,我已经按照说明进行操作 here 但一直无法升级到 WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: , HTTP_UPGRADE: )
我已经按照文档的建议添加了下面的块
location /cable {
passenger_app_group_name app_name_action_cable;
passenger_force_max_concurrent_requests_per_process 0;
}
但错误仍然存在,而且我已经尝试了所有关于 stackover flow 的解决方案,但没有任何帮助?
redis: &redis
adapter: redis
url: redis://localhost:6379/1
development: *redis
test: *redis
production:
adapter: redis
url: <%= Rails.application.credentials[Rails.env.to_sym][:redis_url] %>
可能您需要在 nginx 配置中进行一些配置?我并没有真正与 passenger 一起工作,但在我的项目中我像这样使用它:
upstream socket_server {
server <your_ip>:<your_port>;
}
location /cable {
proxy_pass http://socket_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
我使用 anycable gem 和 golang
套接字服务器,它可能与 passenger
和默认 actioncable
不同,但可能是我的答案可以帮助您解决问题
(此外,我强烈建议继续 anycable
,因为它消耗的服务器资源最少:))