videostream在轨道4.2

videostream在轨道4.2,第1张

概述videostream在轨道4.2

我不知道这是一个编程问题或Web服务器configuration问题。

vIDeo文件不public/因此请求必须通过控制器。

在我的控制器中:

def play_vIDeo vIDeo=VIDeo.find params[:ID] response.headers['Content-Length'] = file.size(vIDeo.path).to_s send_data file.read(vIDeo.path,mode: 'rb'),type: vIDeo.mime_type,disposition: 'inline'

结束

我应该为我的Rails应用程序使用Apache或Nginx&Passenger或Mongrel

乘客5比麒麟/瘦/美洲豹等性能

Nginx + Passenger + Rails服务器错误

我可以添加乘客支持到现有的Nginx而不是重build?

Passenger + Nginx + Node(Meteor)100%的cpu使用率

在客户端,我现在正在使用jplayer 。在linux上开发和生产的firefox运行正常,我可以向前或向后跳转,没有问题。 在linux和windows上的其他所有浏览器上,它都能正常播放,但在开发和制作过程中却没有跳过前进或倒退。 我会把它放到一个jplayer错误,但我得到了完全相同的行为,只有<vIDeo> with control attribute ,以及mediaelement.Js 。

在开发中,我使用Thin ,生产Passenger和Nginx 。

Nginx.conf:

worker_processes 4; events { worker_connections 1024; } sendfile on; #tcp_nopush on; http { passenger_root /usr/local/lib64/ruby/gems/2.2.0/gems/passenger-5.0.11; passenger_ruby /usr/local/bin/ruby; keepalive_timeout 120; gzip on; server { server_tokens off; Listen 80 default_server; Listen 443 ssl; server_name www.example.com; root /path/to/public; passenger_enabled on; clIEnt_max_body_size 100M; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; include mime.types; default_type application/octet-stream; #removed SSL config stuff ...

我不确定问题在哪里。 尝试向前跳跃时,不会收到错误消息。

请不要链接到Rails http Streaming教程,因为它们都是蹩脚的,并不是所有有用的发送“hello world”给客户端10倍的例子,除非你有一个实际上处理vIDeostream。 我发现的任何东西都是针对老版本的rails和其他web服务器的。

如何在单个IP(Apache + Passenger)上部署多个rails应用程序?

rvmsudo passenger-install-Nginx-module:没有这样的文件或目录

脚本标题过早结束 – Rails

/ usr / bin / env:乘客:没有这样的文件或目录,退出状态为1(失败)

无法启动Phusion乘客看门狗

这是一个反模式,你正在尝试做什么,send_file是完全阻塞同步机制,基本上它需要N个Rails进程尽可能多的请求,因为你的应用程序将一次服务。 这是通过控制访问文件或执行任何类型的前/后处理的原因完成的:权限检查,审计等。

如果这是反模式,模式如何:1)x-accel-redirect 2)通过auth_request模块进行异步权限检查

在第一种情况下,您的Rails应用程序只返回x-accel-redirect标头中带有空白主体的文件的URL,然后关闭此请求,以便Rails能够立即继续提供新的请求,而不是等到客户端获取文件慢速客户端的连接Rails不能自由处理,直到完成)。 基本上要同时提供10个大的视频文件10名工作人员要求你有。 x-accel-redirect只有一个工人可以做同样的工作:

轨道

def download vIDeo=VIDeo.find params[:ID] headers['x-accel-redirect'] = "#{vIDeo.file_name}" render nothing: true end

Nginx的

location /vIDeo { internal; root /mnt/vIDeo; }

另一种方法是auth_request ,效率相似,但是您需要事先知道文件目标URL,而不是由服务器生成。 Auth_request位置是内部的,它通过Rails路由处理验证,然后拒绝或将用户传递给目标视频文件URL:

Nginx的

location /vIDeo/ { root /mnt/vIDeo; auth_request /auth; ... } location = /auth { internal; proxy_pass http://localhost; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; }

总结

以上是内存溢出为你收集整理的videostream在轨道4.2全部内容,希望文章能够帮你解决videostream在轨道4.2所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1231996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存