因为众所周知的原因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外链了,我那个郁闷啊。后来发现淘宝有老账号卖,然后就买了一个,神奇的淘宝啊。
1
Marfal 2015-04-20 18:09:31 +08:00
同为小白,我的理解是nginx反代其实是通过nginx服务器向dropbox请求资源的,如果服务器在墙外的话,是可以起到FQ的效果,缓存的话可以减去nginx向dropbox请求资源的环节来加速访问,对一些博客之类内容变动较小的开启缓存会比较好。
|
2
Amit OP 又出现一个问题,因为原来的ssl证书不包括img.xxx.com这个二级域名,所以网站内外链dropbox的图片文件会出现ssl不安全提示,浏览器地址栏的绿色小锁变灰色了⊙﹏⊙b汗
|
3
mcone 2015-04-20 18:16:17 +08:00
别的没仔细看,针对ps里面的内容,你新建的号是可以支持外链的,只是没有老号的public文件夹罢了。
在你share之后,修改一下一部分域名就可以完美外链了(相信你多看两个例子的话会知道怎么改的) 恭喜你很可能被淘宝奸商给忽悠了 |
4
wbbim 2015-04-20 19:28:41 +08:00
|
5
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的规则里面,放前面 另外提醒你,最好做下缓存。 |
6
NewYear 2015-04-21 01:04:10 +08:00
|
7
xiaogui 2015-04-21 02:20:45 +08:00
Dropbox 一直支持 public 外链的
|
8
orzfly 2015-04-21 02:23:14 +08:00 1
|
11
mcone 2015-04-21 12:08:34 +08:00 1
@Amit 官方是知道的,另外官方还有文档教你加上?dl=1
另外,建议你看看这个页面,关于public 文件夹的说明,以后不要再被某宝奸商忽悠了https://www.dropbox.com/en/help/201 |