反向代理访问被 q 资源是何原理

2015-04-20 17:58:21 +08:00
 Amit

因为众所周知的原因dropbox外链无法使用,后来了解到可以通过反向代理可以访问被墙资源。
server{
listen 80;
server_name img.xxx.com;

location / { 
    proxy_pass https://dl.dropboxusercontent.com/u/xxxxxxxx/; 
    proxy_redirect off; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
}

}
在ngnix上使用上面的配置实现了墙内访问,但对反向代理的理解还有点疑问。
原本以为反向代理只是做了一次跳转,可以将不同服务器上的资源映射到一处,顺便美化一下url。
现在看来是我想简单了,即使ip被墙反代一样有效,不像修改本地hosts文件,ip被墙后就没办法了。反代应该有一个从dl.dropboxusercontent.com获取真实资源的过程,这个功能是nginx来执行的吧。网上配置的方法挺多,但都没讲清楚原理(好吧,作为一个小白我承认好多解释我看不懂。。),网上哪里有系统一点的资料吗?
ngnix重写url也可以起到美化url的目的吧,但是这个做不到翻q吧。
能不能通过url重写将img.xxx.com转换成www.xxx.com/image/这样的格式呢?这样看起来习惯一些。

PS:话说零几年的时候就创建了dropbox账号,但也没怎么用,后来又被墙,国内用不了就把账号删除了。最近新注册了一个菜发现已经不支持public外链了,我那个郁闷啊。后来发现淘宝有老账号卖,然后就买了一个,神奇的淘宝啊。

4919 次点击
所在节点    问与答
11 条回复
Marfal
2015-04-20 18:09:31 +08:00
同为小白,我的理解是nginx反代其实是通过nginx服务器向dropbox请求资源的,如果服务器在墙外的话,是可以起到FQ的效果,缓存的话可以减去nginx向dropbox请求资源的环节来加速访问,对一些博客之类内容变动较小的开启缓存会比较好。
Amit
2015-04-20 18:14:46 +08:00
又出现一个问题,因为原来的ssl证书不包括img.xxx.com这个二级域名,所以网站内外链dropbox的图片文件会出现ssl不安全提示,浏览器地址栏的绿色小锁变灰色了⊙﹏⊙b汗
mcone
2015-04-20 18:16:17 +08:00
别的没仔细看,针对ps里面的内容,你新建的号是可以支持外链的,只是没有老号的public文件夹罢了。
在你share之后,修改一下一部分域名就可以完美外链了(相信你多看两个例子的话会知道怎么改的)

恭喜你很可能被淘宝奸商给忽悠了
wbbim
2015-04-20 19:28:41 +08:00
NewYear
2015-04-20 21:43:03 +08:00
原理就是,你的服务器nginx去下载dropbox的资源,然后传输给浏览器。

用www的子目录image可以吗,当然可以,没记错的话直接修改location / { 这行成为location /image/ 和

把location /image/ {
proxy_pass https://dl.dropboxusercontent.com/u/xxxxxxxx/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}放入你的www的规则里面,放前面

另外提醒你,最好做下缓存。
NewYear
2015-04-21 01:04:10 +08:00
@mcone 发现理解能力变弱了好多,阅读能力也弱了好多,明明你说了修改下域名……而我还在你楼下的帖子里反复对比。

其实那个修改域名没有public来得爽吧。
xiaogui
2015-04-21 02:20:45 +08:00
Dropbox 一直支持 public 外链的
orzfly
2015-04-21 02:23:14 +08:00
Amit
2015-04-21 09:22:49 +08:00
@mcone
@NewYear
嗯 修改链接是可以外链,但是比较麻烦,而且这不是官方支持飞方式,怕哪天回处问题。
NewYear
2015-04-21 09:47:55 +08:00
@orzfly 好东西。
mcone
2015-04-21 12:08:34 +08:00
@Amit 官方是知道的,另外官方还有文档教你加上?dl=1

另外,建议你看看这个页面,关于public 文件夹的说明,以后不要再被某宝奸商忽悠了https://www.dropbox.com/en/help/201

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/185013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX