ActionCable的部署(参考Gorails)
Posted chentianwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActionCable的部署(参考Gorails)相关的知识,希望对你有一定的参考价值。
Gorails视频
https://gorails.com/deploy/actioncable
Action Cable – Integrated WebSockets for Rails
https://github.com/rails/rails/tree/master/actioncable
Passenger官网文章:
Tuning for Server Sent Events and WebSockets(on Passenger + nginx)
Integrating Action Cable with Passenger + Nginx
Ruby并发微调
Passenger的高度优化load balancer负载平衡: Ruby apps 可以处理1个并发连接(或者线程限制的数量)。
但是终端deal with SSE/Websockets可以处理更多的并发连接,因此需要改变:
使用: force max concurrent requests per process configuration option 。
例子:如何设置并发来取消对special_websocket_endpoint的限制
server { listen 80; server_name www.example.com; root /webapps/my_app/public; passenger_enabled on; # Use default concurrency for the app. But for the endpoint # /special_websocket_endpoint, force a different concurrency. location /special_websocket_endpoint { passenger_app_group_name foo_websocket; passenger_force_max_concurrent_requests_per_process 0; } }
??:/special_websocket_endpoint改成你的cable名字,一般用/cable
??:passenger_app_group_name后面是你的app_group_name
如果使用的是Rails ,看 Integrating Action Cable with Passenger + Nginx
There are two ways to setup Action Cable with Passenger + Nginx:
- Running the Action Cable server on the same host and port, under a sub-URI
- Running the Action Cable server on a different host or port
需要使用:
Passenger 5.0.24以上
Redis, PostgreSQL或其他inter-process adapter supported by Cable。
。。暂时等待。。
git文档
重点:
Consumer Configuration
In any case, to vary the WebSocket URL between environments, add the following configuration to each environment: 3步骤
config.action_cable.url = "xxxxxx"
Then add the following line to your layout before your javascript tag:
<%= action_cable_meta_tag %>
And finally, create your consumer like so:
App.cable = ActionCable.createConsumer()
Allowed Request Origins
Action Cable将只接受那些指定源头specific origins的请求 。
在server端的config/environments/production.rb中设置:
config.action_cable.allowed_request_origins = [‘http://xxxxxx.com‘]
??也可以是"http://111.xxx.xx.xx"的ip。取消文件中的注释并修改即可。
然后改写:config.aciton_cable.url = ‘/cable‘
这是为用户连接设置server url。
步骤:具体见https://gorails.com/deploy/actioncable
以上是关于ActionCable的部署(参考Gorails)的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上部署 ActionCable (Rails 5 beta4)
使用 AWS Elastic Beanstalk 部署 Rails ActionCable
在 Heroku 上使用 ActionCable 部署 Rails5 beta3 应用程序时 Redis 密码无效