当前位置:首页 > 免费资源 > 正文内容

用Nginx 给Google App Engine 做负载均衡

admin16年前 (2010-05-16)免费资源760
周末突发奇想“能不能用nginx给自己的多个Google App Enine (以下简称GAE)应用作负载均衡呢?”想想蛮有意思的,动手试试看吧,不过这是我第一次用nginx做负载均衡,也是玩玩而已,我还没有那么大访问量的应用。 关于nginx的介绍,百度百科维基百科官网都能找到,国内的张晏写很了个很详细的用nignx 搭建Web服务器的教程-《Nginx + PHP (FastCGI)搭建胜过Apache十倍的Web服务器》,也是得益于这个教程,我才顺利的在vps上用nginx搭建好了Web服务器,在此表示感谢。 负载均衡听起来貌似很复杂,很深奥的技术,等你亲自尝试一番之后会发现:其实在nginx上配置比较简单。 好了,下面就进入到我们这个系统吧,我们要架构的整个系统的结构如下:

步骤1.配置nginx代理访问GAE应用

首先,我们要配置多个代理(你有多少个GAE应用配额就可以设置多少个代理),直接通过IP访问GAE的应用是行不通的,因为Google的服务器无法辨认是哪个应用,所以我们要使用nginx做代理,每个代理的配置方式如下:
  • server                                                                                                                   
  •  {                                                                                                                        
  •    listen 8081;                                                                                                           
  •    location / {                                                                                                           
  •       proxy_pass http://app1.appspot.com;   
  •       proxy_set_header  Host  "app1.appspot.com";                                                                    
  •       proxy_set_header  X-Real-IP   $remote_addr;                                                                         
  •       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;                                                       
  •    }                                                                                                                      
  •  }   
  • ....  
  • server                                                                                                                
     {                                                                                                                     
       listen 8081;                                                                                                        
       location / {                                                                                                        
          proxy_pass http://app1.appspot.com;
          proxy_set_header  Host  "app1.appspot.com";                                                                 
          proxy_set_header  X-Real-IP   $remote_addr;                                                                      
          proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;                                                    
       }                                                                                                                   
     }
    ....
    上面配置中设置主机头是关键配置,它应该设置为你GAE应用的原始域名,一般是xxx.appspot.com。当你重新nginx配置后,你将可以通过8081端口访问你的GAE应用。

    步骤2.配置负载均衡

    nginx负载均衡是通过添加upstream{..}配置节来实现的,我配置了一个最简单的负载均衡方式:
  • upstream backend                                                                                                         
  •   {                                                                                                                        
  •     server 127.0.0.1:8081;                                                                                                 
  •     ...                                                                                                
  •   }  
  • upstream backend                                                                                                      
      {                                                                                                                     
        server 127.0.0.1:8081;                                                                                              
        ...                                                                                             
      }
    可以看到,上面可以配置多个server字段,因为在前面配置了多个代理,它们各自使用的端口不同。关于Server,据我所知有两种类型: 1.每个Server的ip不同,开始我给每个代理分配了一个域名,然后试图通过不同域名来区分server,失败了,这个还有待研究,有了解的朋友请不吝赐教。 2.每个Server的端口号不同,这个就是我们上面采取的方式了。 Server除了配置地址参数外,还有其他很重要的参数,比如设置每个Server的权重,是否为备份server等等,需要知道更详细的,建议看官方wiki。大家也可以尝试多种配置,做做实验嘛~~

    步骤3.配置应用的总入口

    其他配置都准备就绪了,就差一个应用的入口点,也就是访问这个系统的域名,我的配置如下:
  • server                                                                                                                   
  •   {                                                                                                                        
  •     listen 80;                                                                                                             
  •     server_name g.ooq.me;                                                                                                  
  •     location / {                                                                                                           
  •        proxy_pass http://backend;                                                                                          
  •        proxy_set_header  Host  $host;                                                                                      
  •        proxy_set_header  X-Real-IP   $remote_addr;                                                                         
  •        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;                                                       
  •     }                                                                                                                      
  •   }  
  • server                                                                                                                
      {                                                                                                                     
        listen 80;                                                                                                          
        server_name g.ooq.me;                                                                                               
        location / {                                                                                                        
           proxy_pass http://backend;                                                                                       
           proxy_set_header  Host  $host;                                                                                   
           proxy_set_header  X-Real-IP   $remote_addr;                                                                      
           proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;                                                    
        }                                                                                                                   
      }
    到这里所有的配置也就完了,重新加载一下nginx的配置文件,这个系统就启动了。想看看效果可以点这里

    总结

    搭建这个系统有诸多好处: 1.可以免费使用多个GAE跑一个应用。 2.一个很好的学习nginx负载均衡的配置的实验环境。 3.永远不用担心GAE被封掉,只要确保你的vps能访问。 缺点也是存在的: 1.企业级的应用暂时是不可能的了,就算有也不用这么麻烦,GAE本就是云计算应用,Google已经做了负载均衡,也就只能个人玩玩,做个博客什么的还是很好的选择。 2.带宽的问题,我的vps是在美国,ping了一下GAE的服务器只要6-8ms,还算是比较满意的,如果你的vps是在国内的话,估计速度速度会成问题。 3.数据库的共享是一个比较复杂的问题,如果每个GAE应用都用单独的数据库的话,那就不是一个系统了。迫切期待大家想出好的解决方式。 来自:http://server.jzxue.com/http-iis-apache/201005/10-3767.html

    扫描二维码推送至手机访问。

    版权声明:本文由博赚恋吧资源站发布,如需转载请注明出处。

    本文链接:https://432l.com/post/2492.html

    分享给朋友:

    相关文章

    中国移动——加入移动之家每月送10元话费

    移动之家”客户俱乐部简介您的需求就是我们的需求, “移动之家”客户俱乐部期待您的加入!这是一个让您成为主人的俱乐部,一个让您对中国移动进行服务监督、需求反馈、新业务体验、互动交流和享受服务回馈的平台。我们将积极组织各类活动,让您畅享新业务新服务体验的乐趣,感受参与设计和优化移动业务和服务的成就。同时,您还将获得多种奖励和优先待遇,表示我们对您的感谢。 招募时间:3月20日-5月17日成为“移动之家...

    viatalkfree免费无限拨打美国和加拿大,每次10分钟

    viatalkfree是美国的网络电话,该电话一直都有免费使用,但是不支持中国,只能拨打美国和加拿大,每次10分钟,不需要注册,直接在网页上填入电话号码即可拨打,今天发这个电话主要是方便在美国和加拿大的朋友,网站上只有简单介绍免费10分钟和使用方法,连注册都没有。当然有兴趣的朋友可以试试用美国的虚拟号拨打,这样就不仅限与美国与加拿大了,呵呵!自己试试吧Need to make a quick ca...

    恋吧分享—09年最新QQ空间免费代码大全

    09年最新QQ空间免费代码大全使用方法和步骤:登陆进入自己的QQ空间,点击自定义,然后在QQ空间地址栏输入以上免费QQ空间代码.输入代码看到效果后,接着随便移动一下模块,最后点保存方案即可.1、QQ空间皮肤代码 黑色皮肤: javascript:window.top.space_addItem(1,9475,20,100,0,0,93); javascript:window.top.space_a...

    恋吧推荐Vbuzzer—领取60分钟手机回拨免费电话

    这个网络电话是个老免费电话了!一直就有免费试用,但之前都是电脑上打的免费电话!如今随着手机网络电话的不断出现,它也推出了手机回拨功能!回拨就是不需要下载软件也不需要耳麦,直接用你手机就可以拨打你朋友的手机了,而通过的回拨系统,你们通话的双方都是以被叫来建立通话的,所有不需要给移动交话费了,只需要交少量的话费给提供回拨系统的网络电话公司就可以了,由于这种方式既方便又便宜,所有现在回拨越来越流行了。...

    恋吧推荐mig33—送30分钟免费网络电话

    进入注册http://wap.mig33.com/join.php   第一个框填用户名,不能有特殊字符,标点符号等,  第二个框填密码,密码不能是123456之类的字符,最好是字母和数字的组合  第三个框填你的手机号码,请在手机号码前加国家代码,如中国8613912345678第四个框填图像验证码,然后点击Register.  如注册成功,则会收到+0085264504220 发来的1条短...

    CYBERSYNDROME- 全世界的PROXY任你用

    喜欢上上网、抓抓东西但却不得其门而入吗?这时候你需要个小捷径来完成,本网站为简易的日文介面,几个按钮就可以让您找到来自世界各地的Proxy使用。 1.进入本页面 2.依照上图所示找到你所想要的国家 3.找到国家后请点选后方的『Proxy』钮即可 4.搜寻的结果会跳在左下方,若是左下无出现即找不到资料 【网站网址】...

    评论列表

    济南seo
    16年前 (2010-05-16)

    真精彩!
    o(∩_∩)o

    RichardJulianne31
    16年前 (2010-05-19)

    I took my first http://lowest-rate-loans.com when I was 20 and this helped my business a lot. Nevertheless, I need the short term loan as well.

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。