用Nginx 給Google App Engine 做負(fù)載均衡_Web服務(wù)器教程
周末突發(fā)奇想“能不能用nginx給自己的多個(gè)Google App Enine (以下簡(jiǎn)稱GAE)應(yīng)用作負(fù)載均衡呢?”想想蠻有意思的,動(dòng)手試試看吧,不過(guò)這是我第一次用nginx做負(fù)載均衡,也是玩玩而已,我還沒(méi)有那么大訪問(wèn)量的應(yīng)用。
關(guān)于nginx的介紹,百度百科,維基百科和官網(wǎng)都能找到,國(guó)內(nèi)的張晏寫很了個(gè)很詳細(xì)的用nignx 搭建Web服務(wù)器的教程-《Nginx + PHP (FastCGI)搭建勝過(guò)Apache十倍的Web服務(wù)器》,也是得益于這個(gè)教程,我才順利的在vps上用nginx搭建好了Web服務(wù)器,在此表示感謝。
負(fù)載均衡聽(tīng)起來(lái)貌似很復(fù)雜,很深?yuàn)W的技術(shù),等你親自嘗試一番之后會(huì)發(fā)現(xiàn):其實(shí)在nginx上配置比較簡(jiǎn)單。
好了,下面就進(jìn)入到我們這個(gè)系統(tǒng)吧,我們要架構(gòu)的整個(gè)系統(tǒng)的結(jié)構(gòu)如下:

步驟1.配置nginx代理訪問(wèn)GAE應(yīng)用
首先,我們要配置多個(gè)代理(你有多少個(gè)GAE應(yīng)用配額就可以設(shè)置多少個(gè)代理),直接通過(guò)IP訪問(wèn)GAE的應(yīng)用是行不通的,因?yàn)镚oogle的服務(wù)器無(wú)法辨認(rèn)是哪個(gè)應(yīng)用,所以我們要使用nginx做代理,每個(gè)代理的配置方式如下:
- 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;
}
}
....
上面配置中設(shè)置主機(jī)頭是關(guān)鍵配置,它應(yīng)該設(shè)置為你GAE應(yīng)用的原始域名,一般是xxx.appspot.com。當(dāng)你重新nginx配置后,你將可以通過(guò)8081端口訪問(wèn)你的GAE應(yīng)用。
步驟2.配置負(fù)載均衡
nginx負(fù)載均衡是通過(guò)添加upstream{..}配置節(jié)來(lái)實(shí)現(xiàn)的,我配置了一個(gè)最簡(jiǎn)單的負(fù)載均衡方式:
- upstream backend
- {
- server 127.0.0.1:8081;
- ...
- }
upstream backend
{
server 127.0.0.1:8081;
...
}
可以看到,上面可以配置多個(gè)server字段,因?yàn)樵谇懊媾渲昧硕鄠(gè)代理,它們各自使用的端口不同。關(guān)于Server,據(jù)我所知有兩種類型:
1.每個(gè)Server的ip不同,開(kāi)始我給每個(gè)代理分配了一個(gè)域名,然后試圖通過(guò)不同域名來(lái)區(qū)分server,失敗了,這個(gè)還有待研究,有了解的朋友請(qǐng)不吝賜教。
2.每個(gè)Server的端口號(hào)不同,這個(gè)就是我們上面采取的方式了。
Server除了配置地址參數(shù)外,還有其他很重要的參數(shù),比如設(shè)置每個(gè)Server的權(quán)重,是否為備份server等等,需要知道更詳細(xì)的,建議看官方wiki。大家也可以嘗試多種配置,做做實(shí)驗(yàn)嘛~~
步驟3.配置應(yīng)用的總?cè)肟?/h4>
其他配置都準(zhǔn)備就緒了,就差一個(gè)應(yīng)用的入口點(diǎn),也就是訪問(wèn)這個(gè)系統(tǒng)的域名,我的配置如下:
- 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的配置文件,這個(gè)系統(tǒng)就啟動(dòng)了。想看看效果可以點(diǎn)這里。
總結(jié)
搭建這個(gè)系統(tǒng)有諸多好處:
1.可以免費(fèi)使用多個(gè)GAE跑一個(gè)應(yīng)用。
2.一個(gè)很好的學(xué)習(xí)nginx負(fù)載均衡的配置的實(shí)驗(yàn)環(huán)境。
3.永遠(yuǎn)不用擔(dān)心GAE被封掉,只要確保你的vps能訪問(wèn)。
缺點(diǎn)也是存在的:
1.企業(yè)級(jí)的應(yīng)用暫時(shí)是不可能的了,就算有也不用這么麻煩,GAE本就是云計(jì)算應(yīng)用,Google已經(jīng)做了負(fù)載均衡,也就只能個(gè)人玩玩,做個(gè)博客什么的還是很好的選擇。
2.帶寬的問(wèn)題,我的vps是在美國(guó),ping了一下GAE的服務(wù)器只要6-8ms,還算是比較滿意的,如果你的vps是在國(guó)內(nèi)的話,估計(jì)速度速度會(huì)成問(wèn)題。
3.數(shù)據(jù)庫(kù)的共享是一個(gè)比較復(fù)雜的問(wèn)題,如果每個(gè)GAE應(yīng)用都用單獨(dú)的數(shù)據(jù)庫(kù)的話,那就不是一個(gè)系統(tǒng)了。迫切期待大家想出好的解決方式。
- 推薦!各類建站程序偽靜態(tài)規(guī)則代碼
- 詳細(xì)的DedeCMS(織夢(mèng))目錄權(quán)限安全設(shè)置教程
- iis安全設(shè)置全方位教程
- 巧妙出招致勝服務(wù)器管理
- Win Server 2003個(gè)人網(wǎng)絡(luò)服務(wù)器安全攻略
- Windows 2003校園Web服務(wù)器常見(jiàn)問(wèn)題
- 清除IIS配置文件后門隱患
- Web服務(wù)器和應(yīng)用程序服務(wù)器有什么區(qū)別
- 虛擬主機(jī)下asp.net 2.0的導(dǎo)航控件treeview,menu等出錯(cuò)
- IIS6.0服務(wù)器架站無(wú)法訪問(wèn)解決方案總結(jié)
- 圖解支持多語(yǔ)言環(huán)境的IIS服務(wù)器配置
- IIS服務(wù)器排錯(cuò)指南及錯(cuò)誤代碼大全
Web服務(wù)器教程Rss訂閱服務(wù)器教程搜索
Web服務(wù)器教程推薦
- 教你架設(shè)一臺(tái)流媒體服務(wù)器
- 技巧:如何加固外網(wǎng)上的IIS服務(wù)器安全
- IIS發(fā)布站點(diǎn)要密碼故障解決辦法
- 網(wǎng)吧主頁(yè)服務(wù)器的配置詳解(圖)
- linux 下設(shè)置apache開(kāi)啟htaccess啟用步驟
- IIS5安全策略設(shè)計(jì)概要
- 抵御黑客入侵防護(hù)服務(wù)器安全的七個(gè)技巧
- IIS中WEB服務(wù)器的日志存放到SQL Server 2005中
- WEB專用服務(wù)器的安全設(shè)置的實(shí)戰(zhàn)技巧
- 2003服務(wù)器防止海洋木馬的安全設(shè)置
- 相關(guān)鏈接:
- 教程說(shuō)明:
Web服務(wù)器教程-用Nginx 給Google App Engine 做負(fù)載均衡
。