青青子衿, 悠悠我心, 但为君故, 沉吟至今
« Google Earth iPad版评测Firefox扩展插件备份同步工具 »

使用Nginx给Google App Engine做负载均衡

  周末突发奇想“能不能用nginx给自己的多个Google App Enine (以下简称GAE)应用作负载均衡呢?”想想蛮有意思的,动手试试看吧,不过这是我第一次用nginx做负载均衡,也是玩玩而已,我还没有那么大访问量的应用。

  关于nginx的介绍,百度百科,维基百科和官网都能找到,国内的张晏写很了个很详细的用nignx 搭建Web服务器的教程-《Nginx + PHP (FastCGI)搭建胜过Apache十倍的Web服务器》,也是得益于这个教程,我才顺利的在vps上用nginx搭建好了web服务器,在此表示感谢。

  负载均衡听起来貌似很复杂,很深奥的技术,等你亲自尝试一番之后会发现:其实在nginx上配置比较简单。

  好了,下面就进入到我们这个系统吧,我们要架构的整个系统的结构如下:

用Nginx 给Google App Engine 做负载均衡

  步骤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;

  }

  ……

  上面配置中设置主机头是关键配置,它应该设置为你GAE应用的原始域名,一般是xxx.appspot.com.当你重新nginx配置后,你将可以通过8081端口访问你的GAE应用。

  步骤2.配置负载均衡

  nginx负载均衡是通过添加upstream{……}配置节来实现的,我配置了一个最简单的负载均衡方式:

  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;

  }

  到这里所有的配置也就完了,重新加载一下nginx的配置文件,这个系统就启动了。

  小结

  搭建这个系统有诸多好处:

  1.可以免费使用多个GAE跑一个应用。

  2.一个很好的学习nginx负载均衡的配置的实验环境。

  3.永远不用担心GAE被封掉,只要确保你的vps能访问。

  缺点也是存在的:

  1.企业级的应用暂时是不可能的了,就算有也不用这么麻烦,GAE本就是云计算应用,Google已经做了负载均衡,也就只能个人玩玩,做个博客什么的还是很好的选择。

  2.带宽的问题,我的vps是在美国,ping了一下GAE的服务器只要6-8ms,还算是比较满意的,如果你的vps是在国内的话,估计速度会成问题。

  3.数据库的共享是一个比较复杂的问题,如果每个GAE应用都用单独的数据库的话,那就不是一个系统了。迫切期待大家想出好的解决方式。

  来源:Lloyd Sheng Blog投稿



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/2216.html
  • 文章排行:
  • 1.多米下
  • 我想问下博主:你的VPS是在哪里买的,速度很快
  • 2010/7/18 10:05:03   支持(12)反对(7) 回复
  • 3.leguan
  • 我想把看到的界面截图给你,不知道用什么方法。
  • 2010/6/21 0:42:39   支持(6)反对(3) 回复
  • 4.全文阅读网
  • 看不明白,知识有限
  • 2010/6/22 18:34:36   支持(10)反对(7) 回复
  • 5.虎虎生威
  • 不错,那个图我喜欢 哈哈
  • 2010/6/20 22:54:24   支持(5)反对(3) 回复
  • 6.leguan
  • 网页被劫持了?还是其他原因?不明白。
  • 2010/6/21 0:38:54   支持(6)反对(4) 回复
  • 7.海南园林网
  • 喜欢月光的文章,期待……
  • 2010/6/21 0:05:01   支持(10)反对(9) 回复
  • 8.wanglei
  • 这是违反Google 的政策的,发现了要被封杀的,都这样搞,谁还用收费服务. 再说 GAE 本来就是云计算,负载均衡自然没问题,这个负载均衡的唯一意义就是*免费*.
  • 2010/6/21 8:55:03   支持(5)反对(4) 回复
  • 9.自由人
  • 还没做过这个 nginx就用了一次。。。
  • 2010/6/21 10:28:58   支持(4)反对(3) 回复
  • 10.和你在一起
  • 今天的文章没有开评论~~
    博主Google快照不能用了
  • 2010/6/21 22:17:19   支持(7)反对(6) 回复
  • 11.muxueqz
  • s/张晏/张宴/g

    呵呵,不错的想法,嗯,在SAE上也可以玩玩
  • 2010/6/23 7:59:45   支持(7)反对(6) 回复
  • 13.ckqee
  • 这篇有料,月光的文章总有阅读价值
    ckqee 于 2010-6-20 22:46:30 回复
    好吧… 最近都是投稿文
    山神博客 于 2010-6-20 22:58:53 回复
    嗯,最近投稿的多。月光这几天比较忙吧。呵呵~
    山神博客 于 2010-6-20 23:00:24 回复
    还是支持月光,每一篇文章都是值得一读的,不管是原创还是网友供稿的。月光之精华!
    林忠峰 于 2010-6-20 23:45:24 回复
    hntv5 于 2010-6-21 9:40:47 回复
    说实话没看懂
    sdfs 于 2010-8-17 15:09:16 回复
    内容非常好
  • 2010/6/20 22:43:32   支持(5)反对(5) 回复
  • 14.leguan
  • 网页上的广告,太恶心了。艳照、成人等等,是谁加上去的?
  • 2010/6/21 0:35:45   支持(8)反对(8) 回复
  • 17.ipy
  • 本文的标题叫 "gae 反向代理"更合适,这是反向代理吧(是因为关键字)
  • 2010/6/21 19:16:06   支持(5)反对(5) 回复
  • 18.1466060132297
  • hello true,
    哪位大神能够解释一下true的用法,看了一下Beikao帝(Http://Www.Beikaodi.Com/word/true.html)上的解释,不是太明白呢。
    time:2:55:32 PM
  • 2016/6/16 14:57:02   支持(0)反对(0) 回复
  • 19.风小
  • 博主网站做的太赞了 内容十分丰富!
  • 2010/8/9 21:02:49   支持(5)反对(6) 回复
  • 20.山神博客
  • 晕啊,刚才的评论怎么都是回复一楼了,点错了。我成了盖房子的了。
  • 2010/6/20 23:03:24   支持(4)反对(6) 回复
  • 22.maoyuheng
  • 月光的博客文章写的非常好 非常喜欢 期待
  • 2010/6/21 9:14:34   支持(3)反对(5) 回复
  • 23.su27
  • 本来我也想这么搞,但是gae的policy里面明确不允许多个服务跑同一个应用。。。
  • 2010/6/21 10:57:45   支持(4)反对(7) 回复
  • 24.PTFE
  • 深奥了,以后用的时候再来看看。
  • 2010/6/21 18:07:08   支持(5)反对(8) 回复
  • 25.价值连城
  • 很不错的说、。。。可以试试
  • 2010/6/23 0:53:12   支持(2)反对(5) 回复
  • 27.龙之谷
  • 站长总是走在最前面啊, 这个还没用过
  • 2010/6/22 10:16:54   支持(4)反对(8) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.