当响应位置的域发生变化时,使用nginx的proxy_redirect
我正在使用SoundCloud的API制作一个Web应用程序.请求MP3流传输涉及两个请求.我举个例子.首先:
这将返回302,其中包含指向实际MP3的临时链接(每次都会有所不同),例如:
我遇到的问题是我试图通过JavaScript的XMLHTTPRequest加载MP3,出于安全原因,浏览器无法跟踪302,因为ec-media.soundcloud.com没有设置标题说它对浏览器是安全的通过XMLHTTPRequest访问. 因此,我没有使用SoundCloud URL,而是在nginx中设置了两个位置,因此浏览器只与托管我的应用程序的服务器进行交互,并且不会出现任何安全错误:
所以myserver / soundcloud / tracks / 59815100将302返回到/myserver/soundcloud/media/xYZk0lr2TeQf.128.mp3…etc,然后转发MP3. 这有效!但是,我遇到了麻烦.有时302位置不是ec-media.soundcloud.com,它是ak-media.soundcloud.com.可能还有更多的服务器,可能随时会出现更多的服务器.有没有办法可以处理任意302位置,而无需手动输入每个可能的变化? 或者nginx是否可以处理重定向并返回第二步的响应?所以myserver / soundcloud / tracks / 59815100跟在幕后302并返回MP3? 浏览器会自动跟随重定向,因此我无法对客户端的初始响应执行任何操作. 我是nginx的新手并且有点头脑,如果我错过了一些明显的东西,或者超出了nginx的范围,那么道歉.非常感谢阅读. 您可以在proxy_redirect中使用正则表达式.见the docs.就像是:
应该做的伎俩. 顺便说一句,你在做一些奇怪的事情:
它等于这个:
阅读documentation总是一个好主意. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- nginx有一个类似于Apache的指令吗?
- ruby-on-rails – 在websocket握手期间Rails Act
- ruby-on-rails – 用Bundler安装Gems ==大问题
- ubuntu – / etc / nginx / sites-enabled / def
- NGINX缓存错误:与/etc/nginx/nginx.conf中已声明
- perl – Starman的最佳–max-requests设置是什么
- 带有Nginx 1.6.2的CentOS 6.6-突然无法重新启动N
- python – django-allauth:如何修改邮件确认网址
- drupal – 如何为挂起的网站调试nginx / php-fpm
- 在浏览器中显示Nginx中的致命错误