January
nginx鍋氫负鍙嶅悜浠g悊瀹炵幇璐熻浇鍧囪 鐨勪緥瀛(杞)
Posted by LanCao at 1:45 PM. Placed in 缃戠珯鎬ц兘浼樺寲 category
1)鐜锛聽
a. 鎴戜滑鏈湴鏄疻indows绯荤粺锛岀劧鍚庝娇鐢╒irutalBox瀹夎涓涓櫄鎷熺殑Linux绯荤粺銆聽
鍦ㄦ湰鍦扮殑Windows绯荤粺涓婂垎鍒畨瑁卬ginx(渚﹀惉8080绔彛)鍜宎pache(渚﹀惉80绔彛)銆傚湪铏氭嫙鐨凩inux绯荤粺涓婂畨瑁卆pache(渚﹀惉80绔彛)銆
杩欐牱鎴戜滑鐩稿綋浜庢嫢鏈変簡1鍙皀ginx鍦ㄥ墠绔綔涓哄弽鍚戜唬鐞嗘湇鍔″櫒锛涘悗闈㈡湁2鍙癮pache浣滀负搴旂敤绋嬪簭鏈嶅姟鍣(鍙互鐪嬩綔鏄皬鍨嬬殑server cluster銆;-) )锛
b. nginx鐢ㄦ潵浣滀负鍙嶅悜浠g悊鏈嶅姟鍣紝鏀剧疆鍒颁袱鍙癮pache涔嬪墠锛屼綔涓虹敤鎴疯闂殑鍏ュ彛锛聽
nginx浠呬粎澶勭悊闈欐侀〉闈紝鍔ㄦ佺殑椤甸潰(php璇锋眰)缁熺粺閮戒氦浠樼粰鍚庡彴鐨勪袱鍙癮pache鏉ュ鐞嗐
涔熷氨鏄锛屽彲浠ユ妸鎴戜滑缃戠珯鐨勯潤鎬侀〉闈㈡垨鑰呮枃浠舵斁缃埌nginx鐨勭洰褰曚笅锛涘姩鎬佺殑椤甸潰鍜屾暟鎹簱璁块棶閮戒繚鐣欏埌鍚庡彴鐨刟pache鏈嶅姟鍣ㄤ笂銆
c. 濡備笅浠嬬粛涓ょ鏂规硶瀹炵幇server cluster鐨勮礋杞藉潎琛°偮
鎴戜滑鍋囪鍓嶇nginx(涓127.0.0.1:80)浠呬粎鍖呭惈涓涓潤鎬侀〉闈ndex.html锛
鍚庡彴鐨勪袱涓猘pache鏈嶅姟鍣(鍒嗗埆涓簂ocalhost:80鍜158.37.70.143:80)锛屼竴鍙版牴鐩綍鏀剧疆phpMyAdmin鏂囦欢澶瑰拰test.php(閲岄潰娴嬭瘯浠g爜涓簆rint “server1″;)锛屽彟涓鍙版牴鐩綍浠呬粎鏀剧疆涓涓猼est.php(閲岄潰娴嬭瘯浠g爜涓簆rint “server2″;)銆
2)閽堝涓嶅悓璇锋眰聽鐨勮礋杞藉潎琛★細聽
a. 鍦ㄦ渶绠鍗曞湴鏋勫缓鍙嶅悜浠g悊鐨勬椂鍊聽(nginx浠呬粎澶勭悊闈欐佷笉澶勭悊鍔ㄦ佸唴瀹癸紝鍔ㄦ佸唴瀹逛氦缁欏悗鍙扮殑apache server鏉ュ鐞)锛屾垜浠叿浣撶殑璁剧疆涓猴細鍦╪ginx.conf涓慨鏀癸細
location ~ \.php$ {
聽聽聽 proxy_pass聽聽聽158.37.70.143:80聽;
}
>杩欐牱褰撳鎴风璁块棶localhost:8080/index.html鐨勬椂鍊欙紝鍓嶇鐨刵ginx浼氳嚜鍔ㄨ繘琛屽搷搴旓紱
>褰撶敤鎴疯闂甽ocalhost:8080/test.php鐨勬椂鍊(杩欎釜鏃跺檔ginx鐩綍涓嬫牴鏈氨娌℃湁璇ユ枃浠)锛屼絾鏄氳繃涓婇潰鐨勮缃甽ocation ~ \.php$(琛ㄧず姝e垯琛ㄨ揪寮忓尮閰嶄互.php缁撳熬鐨勬枃浠讹紝璇︽儏鍙傜湅location鏄浣曞畾涔夊拰鍖归厤鐨http://wiki.nginx.org/NginxHttpCoreModule)聽锛宯ginx鏈嶅姟鍣ㄤ細鑷姩pass缁158.37.70.143鐨刟pache鏈嶅姟鍣ㄤ簡銆傝鏈嶅姟鍣ㄤ笅鐨則est.php灏变細琚嚜鍔ㄨВ鏋愶紝鐒跺悗灏唄tml鐨勭粨鏋滈〉闈㈣繑鍥炵粰nginx锛岀劧鍚巒ginx杩涜鏄剧ず(濡傛灉nginx浣跨敤memcached妯″潡鎴栬卻quid杩樺彲浠ユ敮鎸佺紦瀛)锛岃緭鍑虹粨鏋滀负鎵撳嵃server2銆
濡備笂鏄渶涓虹畝鍗曠殑浣跨敤nginx鍋氫负鍙嶅悜浠g悊鏈嶅姟鍣ㄧ殑渚嬪瓙锛
b. 鎴戜滑鐜板湪瀵瑰涓婁緥瀛愯繘琛屾墿灞曪紝浣垮叾鏀寔濡備笂鐨勪袱鍙版湇鍔″櫒銆聽
鎴戜滑璁剧疆nginx.conf鐨剆erver妯″潡閮ㄥ垎锛屽皢瀵瑰簲閮ㄥ垎淇敼涓猴細
location ^~ /phpMyAdmin/ {
聽聽聽 proxy_pass聽聽聽127.0.0.1:80聽;
}
location ~ \.php$ {
聽聽聽 proxy_pass聽聽聽158.37.70.143:80聽;
}
涓婇潰绗竴涓儴鍒唋ocation ^~ /phpMyAdmin/锛岃〃绀轰笉浣跨敤姝e垯琛ㄨ揪寮忓尮閰(^~)锛岃屾槸鐩存帴鍖归厤锛屼篃灏辨槸濡傛灉瀹㈡埛绔闂殑URL鏄互http://localhost:8080/phpMyAdmin/聽寮澶寸殑璇(鏈湴鐨刵ginx鐩綍涓嬫牴鏈病鏈塸hpMyAdmin鐩綍)锛宯ginx浼氳嚜鍔╬ass鍒127.0.0.1:80聽鐨凙pache鏈嶅姟鍣紝璇ユ湇鍔″櫒瀵筽hpMyAdmin鐩綍涓嬬殑椤甸潰杩涜瑙f瀽锛岀劧鍚庡皢缁撴灉鍙戦佺粰nginx锛屽悗鑰呮樉绀猴紱
濡傛灉瀹㈡埛绔闂甎RL鏄http://localhost/test.php聽鐨勮瘽锛屽垯浼氳pass鍒158.37.70.143:80聽鐨刟pache杩涜澶勭悊銆
鍥犳缁间笂锛屾垜浠疄鐜颁簡閽堝涓嶅悓璇锋眰鐨勮礋杞藉潎琛°
>濡傛灉鐢ㄦ埛璁块棶闈欐侀〉闈ndex.html锛屾渶鍓嶇鐨刵ginx鐩存帴杩涜鍝嶅簲锛
>濡傛灉鐢ㄦ埛璁块棶test.php椤甸潰鐨勮瘽锛158.37.70.143:80聽鐨凙pache杩涜鍝嶅簲锛
>濡傛灉鐢ㄦ埛璁块棶鐩綍phpMyAdmin涓嬬殑椤甸潰鐨勮瘽锛127.0.0.1:80聽鐨凙pache杩涜鍝嶅簲锛
3)璁块棶鍚屼竴椤甸潰聽鐨勮礋杞藉潎琛★細聽
鍗鐢ㄦ埛璁块棶http://localhost:8080/test.php聽杩欎釜鍚屼竴椤甸潰鐨勬椂鍊欙紝鎴戜滑瀹炵幇涓ゅ彴鏈嶅姟鍣ㄧ殑璐熻浇鍧囪 聽(瀹為檯鎯呭喌涓紝杩欎袱涓湇鍔″櫒涓婄殑鏁版嵁瑕佹眰鍚屾涓鑷达紝杩欓噷鎴戜滑鍒嗗埆瀹氫箟浜嗘墦鍗皊erver1鍜宻erver2鏄负浜嗚繘琛岃鲸璁ゅ尯鍒)銆
a. 鐜板湪鎴戜滑鐨勬儏鍐垫槸鍦╳indows涓媙ginx鏄痩ocalhost渚﹀惉8080绔彛锛
涓ゅ彴apache锛屼竴鍙版槸127.0.0.1:80(鍖呭惈test.php椤甸潰浣嗘槸鎵撳嵃server1)锛屽彟涓鍙版槸铏氭嫙鏈虹殑158.37.70.143:80(鍖呭惈test.php椤甸潰浣嗘槸鎵撳嵃server2)銆
b. 鍥犳閲嶆柊閰嶇疆nginx.conf涓猴細聽
>棣栧厛鍦╪ginx鐨勯厤缃枃浠秐ginx.conf鐨刪ttp妯″潡涓坊鍔狅紝鏈嶅姟鍣ㄩ泦缇erver cluster(鎴戜滑杩欓噷鏄袱鍙)鐨勫畾涔夛細聽
upstream myCluster {
聽聽聽 server聽127.0.0.1:80聽;
聽聽聽 server聽158.37.70.143:80聽;
}
琛ㄧず杩欎釜server cluster鍖呭惈2鍙版湇鍔″櫒
>鐒跺悗鍦╯erver妯″潡涓畾涔夛紝璐熻浇鍧囪 锛聽
location ~ \.php$ {
聽聽聽 proxy_pass聽聽http://myCluster聽; #杩欓噷鐨勫悕瀛楀拰涓婇潰鐨刢luster鐨勫悕瀛楃浉鍚
聽聽聽 proxy_redirect聽聽聽聽 off;
聽聽聽 proxy_set_header聽聽 Host聽聽聽聽聽聽聽聽聽聽聽聽 $host;
聽聽聽 proxy_set_header聽聽 X-Real-IP聽聽聽聽聽聽聽 $remote_addr;
聽聽聽 proxy_set_header聽聽 X-Forwarded-For聽 $proxy_add_x_forwarded_for;
}
杩欐牱鐨勮瘽锛屽鏋滆闂http://localhost:8080/test.php聽椤甸潰鐨勮瘽锛宯ginx鐩綍涓嬫牴鏈病鏈夎鏂囦欢锛屼絾鏄畠浼氳嚜鍔ㄥ皢鍏秔ass鍒癿yCluster瀹氫箟鐨勬湇鍔″尯鏈虹兢涓紝鍒嗗埆鐢127.0.0.1:80;鎴栬158.37.70.143:80;鏉ュ仛澶勭悊銆聽
涓婇潰鍦ㄥ畾涔塽pstream鐨勬椂鍊欐瘡涓猻erver涔嬪悗娌℃湁瀹氫箟鏉冮噸锛岃〃绀轰袱鑰呭潎琛★紱濡傛灉甯屾湜鏌愪釜鏇村鍝嶅簲鐨勮瘽渚嬪锛
upstream myCluster {
聽聽聽 server聽127.0.0.1:80聽weight=5;
聽聽聽 server聽158.37.70.143:80聽;
}
杩欐牱琛ㄧず5/6鐨勫嚑鐜囪闂涓涓猻erver,1/6璁块棶绗簩涓傚彟澶栬繕鍙互瀹氫箟max_fails鍜宖ail_timeout绛夊弬鏁般
http://wiki.nginx.org/NginxHttpUpstreamModule聽
====================
缁间笂锛屾垜浠浣跨敤nginx鐨勫弽鍚戜唬鐞嗘湇鍔″櫒reverse proxy server鐨勫姛鑳斤紝灏嗗叾甯冪疆鍒板鍙癮pache server鐨勫墠绔
nginx浠呬粎鐢ㄦ潵澶勭悊闈欐侀〉闈㈠搷搴斿拰鍔ㄦ佽姹傜殑浠g悊pass锛屽悗鍙扮殑apache server浣滀负app server鏉ュ鍓嶅彴pass杩囨潵鐨勫姩鎬侀〉闈㈣繘琛屽鐞嗗苟杩斿洖缁檔ginx銆聽
閫氳繃浠ヤ笂鐨勬灦鏋勶紝鎴戜滑鍙互瀹炵幇nginx鍜屽鍙癮pache鏋勬垚鐨勬満缇luster鐨勮礋杞藉潎琛°
涓ょ鍧囪 锛
1)鍙互鍦╪ginx涓畾涔夎闂笉鍚岀殑鍐呭锛屼唬鐞嗗埌涓嶅悓鐨勫悗鍙皊erver锛聽濡備笂渚嬪瓙涓殑璁块棶phpMyAdmin鐩綍浠g悊鍒扮涓鍙皊erver涓婏紱璁块棶test.php浠g悊鍒扮浜屽彴server涓婏紱
2)鍙互鍦╪ginx涓畾涔夎闂悓涓椤甸潰锛屽潎琛聽(褰撶劧濡傛灉鏈嶅姟鍣ㄦц兘涓嶅悓鍙互瀹氫箟鏉冮噸鏉ュ潎琛)鍦颁唬鐞嗗埌涓嶅悓鐨勫悗鍙皊erver涓娿聽濡備笂鐨勪緥瀛愯闂畉est.php椤甸潰锛屼細鍧囪 鍦颁唬鐞嗗埌server1鎴栬卻erver2涓娿
瀹為檯搴旂敤涓紝server1鍜宻erver2涓婂垎鍒繚鐣欑浉鍚岀殑app绋嬪簭鍜屾暟鎹紝闇瑕佽冭檻涓よ呯殑鏁版嵁鍚屾銆
鍘熸枃閾炬帴锛http://blog.csdn.net/omohe/archive/2009/07/09/4335765.aspx



聽