繁体   English   中英

如何通过Rails应用程序从防火墙服务器代理文件

[英]How to proxy files from firewalled server through rails application

我在Nginx上运行了一个Rails应用程序,该应用程序需要提供文件以便从另一台内部服务器下载。 内部服务器使用动态URL生成要下载的文件,因此它不是位于文件夹中的静态文件。 Rails服务器和带有文件的服务器都在同一LAN上,但是只有Rails服务器在端口80上对公众开放。

另外,我希望提供的文件大小从5GB-200GB不等,因此,如果可能的话,我不想在整个下载过程中使用rails进程。 有没有办法用Net :: HTTP + send_data做到这一点? 还是某种Nginx代理规则?

您可以从LAN内部下载具有以下网址的文件:

http://username:password@192.168.0.5/export?uuid=1234567890

问题是1)没有对该URL的访问控制,通过用户/ pass,您可以通过传入其uuid参数来下载所需的任何文件,以及2)服务器只能通过LAN访问。

我通过这里的教程找出了这个问题的答案: http : //kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/

要处理HTTP基本身份验证,您需要将此行添加到您的nginx配置中:

proxy_set_header Authorization "Basic BASE64_USER_PASS";

其中BASE64_USER_PASS是您的用户名和密码的base64字符串,格式为“ user:pass”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM