kn007的个人博客
♥ You are here: Home > 软件与网络 > VPS > 详谈nginx如何使用转发规则异步请求目标地址

详谈nginx如何使用转发规则异步请求目标地址

by | 48 Comments

提醒:本文最后更新于 3427 天前,文中所描述的信息可能已发生改变,请仔细核实。

瓜瓜Mr.小可的要求,详细(废话多一点)的说一下怎么解决相册请求的图片地址必须为本地,将其改为远程的办法。。。

改PHP什么的就不用我废话了,大家不用继续看下去了。。。本文不讲这个。

讲的是文章将相册请求转接到又拍云,并用ImageMagick压缩中有关如何将相册请求的本地地址,请求到又拍云。

我的相册是Imagevue,第一次看见他,是在SAM老哥那看到的。具体文件呢,也是SAM老哥慷慨提供(之前下的不知为毛不能用)。

这个相册不错,但是呢,只能请求本地文件夹,虽然偶带宽什么都是够多,但是也不想过多的图片在我的服务器上,而且又搞了又拍云(你妹的,又拍云就是为相册买的,有木有,不能用,搞毛啊),不能读取远程又拍云图片真是太坑爹了。

在上面那个传送门文章,我说了使用了nginx直接重定向向到又拍云,会使得Imagevue相册无法打开。悲剧。于是偶采用了另类办法。

Imagevue相册请求的图片地址是我的本地目录的/content/目录,里面还有小目录,细分是什么名字的相册。于是我利用nginx将所有请求到该目录的地址,一律转发到又拍云,为了不使得非图片文件转发到远程读取,我限定了,只有jpg|JPG才能读取,因为我里面只有jpg的图片,为毛有大小写呢?因为linux是区分大小写。

具体的nginx.conf是:

server {
   listen       11314;
   server_name default;
   index index.php;
   root  /data/album;
   location ~ /content/.*\.(JPG|jpg)$  {
       expires      30d;
       rewrite ^/content/(.*)$ /content/$1 break;
       proxy_pass http://kn007.b0.upaiyun.com;
    }
       location ~ .*\.(php|php5)?$
           {
               try_files $uri =404;
               fastcgi_pass  unix:/tmp/php-cgi.sock;
               fastcgi_index index.php;
               include fcgi.conf;
           }
   access_log off;
}

 当然啦,要是图片有显示必须确保http://kn007.b0.upaiyun.com/content/是存在并且按照规定放置图片的。

大概请求示意图:

这样就ok了。。。据说ngg请求本地目录是/wp-content/gallery/,那么,同上,可得:

server {
   listen       11314;
   server_name default;
   index index.php;
   root  /data/album;
   location ~ /wp-content/gallery/.*\.(JPG|jpg)$  {
       expires      30d;
       rewrite ^/wp-content/gallery/(.*)$ /ngg/$1 break;
       proxy_pass http://kn007.b0.upaiyun.com;
    }
       location ~ .*\.(php|php5)?$
           {
               try_files $uri =404;
               fastcgi_pass  unix:/tmp/php-cgi.sock;
               fastcgi_index index.php;
               include fcgi.conf;
           }
   access_log off;
}

确保http://kn007.b0.upaiyun.com/ngg/是存在并且按照规定放置图片的就ok了。

因此,ngg的请求也异步到了又拍。。。

使用异步定向,也就是保持了原始地址读取,实际由指定地址读取内容。(这样的话,对本身主机响应请求速度有要求,图片不耗本机流量,请求的流量很小,可忽略不计)。

最后还是提提偶的相册地址 album.kn007.net

转载请注明转自: kn007的个人博客 的《详谈nginx如何使用转发规则异步请求目标地址

donate
有所帮助?
Tags: , ,
Comments
48 Comments立即评论
  1. LV3回复

    第一个占沙发的人,我去试试了.. :roll:

    1. MOD回复

      @瓜瓜: 去吧...

    2. @瓜瓜: 看完了在占坐是不是有点晚。

    3. MOD回复
  2. 我也去试试。 :mrgreen:

    1. MOD回复
    2. @kn007: 妹的,咋试。那个阿里云服务器都没配置好,你要不 拿去玩吧。(啥时候阿里云这么贱了)

    3. MOD回复

      @老猫Music: 不玩,最近没时间 :???:

  3. 又拍的确挺好的,就是贵了点啊。

    1. MOD回复

      @findfeel: 还行。。

    2. @kn007: 速度杠杠的。

    3. MOD回复

      @findfeel: 那是 :mrgreen:

  4. LV2回复

    可以试试

    1. MOD回复
  5. 请教,我设置好W3 Total Cache并把东西上传到又拍云了,但是貌似还是无法调用又拍云上的js,css,求解。谢谢

    1. MOD回复

      @愚蠢的凡人: 设置CDN啊。

    2. @kn007: 就是设置好了

    3. MOD回复

      @愚蠢的凡人: ...别告诉我,你的w3tc还是调试模式

    4. @kn007: 哪里看还是调试模式,汗了

    5. MOD回复

      @愚蠢的凡人: https://kn007.net/topics/i-virtual-host-w3tc-settings-at-a-glance/ 第一张图

  6. LV4回复

    好吧,我是进来学习的。。。 :roll: :roll:

    1. MOD回复

      @山姆: :roll: 贻笑大方

  7. 呵呵 依然看不懂

    1. MOD回复

      @feifan520: 嘿嘿,不要求女生看懂

    2. @kn007: 这话说得 虽然很正确 但是怎么有点歧视的小感呢 有木有

    3. MOD回复

      @feifan520: 木有,这话打死都不能承认

    4. @kn007: 好吧 赐你不死

  8. 回复

    来过 看过

  9. 回复

    我是进来测试留言的 哈哈哈 ajax么

    1. MOD回复

      @刘荣焕: 是ajax,话说你好歹搞个头像啊

  10. LV6回复

    又拍好似是收费的吧~~我相册都是本地的~~貌似放在别人那总有点不安心的感觉~~~尽管他很牛逼~尽管他知名度很高~附件放在百度都还蛋疼蛋疼的~~~~

    1. MOD回复

      @小T: 我是本地远程都放~ :mrgreen:

    2. LV6回复

      @kn007: 这个整理起来不是很蛋疼.... :twisted:

    3. MOD回复

      @小T: 额,不会啊,本地弄好了,发远程就好了,我只需要把图片上传到服务器就行了,搞完了,直接服务器发送到又拍云。 :mrgreen:

    4. LV6回复

      @kn007: 干~~这都行~~

    5. MOD回复

      @小T: 难道你还想。。。本地远程都上传一遍, :o 你不累,带宽也累啊。。服务器G口对又拍G口,速度贼快~ :oops:

    6. LV6回复

      @kn007: 那加载的资源是从那边算?又拍?

    7. MOD回复

      @小T: 肯定是又拍啊,本地的纯属死文件,删了完全木有问题 :cool:
      又拍分流了我2/3的流量

;-):|:x:twisted::smile::shock::sad::roll::razz::oops::o:mrgreen::lol::idea::grin::evil::cry::cool::arrow::???::?::!: