nginx+docker+lamp+redis實(shí)現(xiàn)負(fù)載均衡和session共享

nginx+docker+lamp+redis實(shí)現(xiàn)負(fù)載均衡和session共享

docker

docker是一種應(yīng)用容器技術(shù),其性能傳統(tǒng)虛擬機(jī)是完全無法相比的嚷炉,并且其沙箱技術(shù)能保證容器與物理機(jī)的隔離,實(shí)現(xiàn)安全可靠,在云計(jì)算時代,扮演者十分重要的角色事格。

安裝docker

最新版的docker是按照年份和月份來確定的版本號,和以前的舊版不同搞隐,建議使用新版本驹愚。安裝方法,網(wǎng)上很多劣纲。

apt-get install docker-ce

準(zhǔn)備的鏡像

  • linode/lamp(主要是apache+php環(huán)境逢捺,數(shù)據(jù)庫使用物理機(jī))
  • ubuntu(nginx)
  • ubuntu(redis)

nginx

nginx是一個高性能的http服務(wù)器和反向代理服務(wù)器,它解決了c10k問題癞季,
本文主要是利用其優(yōu)秀的性能做后端集群服務(wù)器的反向代理服務(wù)器劫瞳。

安裝nginx

  1. 下載源碼,官網(wǎng)下載

  2. 在ubuntu下編譯安裝绷柒,本文采用docker的Ubuntu鏡像

    具體安裝方法本文不在贅述志于,網(wǎng)上教程很多。

  3. 安裝后配置

    安裝后查看nginx的網(wǎng)絡(luò)信息

    nginx_net

    ip : 172.17.0.2

    nginx 端口 80

    然后配置負(fù)載均衡后端服務(wù)器集群ip废睦,本文假設(shè)只有兩臺服務(wù)器

    nginx_config

    ip : 172.17.0.3 和 172.17.0.4

lamp

lamp是linux下apache+php+mysql的運(yùn)行環(huán)境伺绽,本文需要的只是apache和php運(yùn)行環(huán)境,為了方便嗜湃,直接從docker倉庫pull下來linode/lamp進(jìn)行測試奈应,可以自己進(jìn)行build一份lamp環(huán)境,如何使用docker來build自己網(wǎng)上搜索净蚤。

  1. 使用docker運(yùn)行l(wèi)amp鏡像钥组,并且將物理機(jī)代碼映射到docker中的網(wǎng)站根目錄下输硝,保證所有后端服務(wù)器運(yùn)行代碼都是同一份今瀑。

    docker run -it -v /home/codelover/docker/:/var/www/html/ linode/lamp

  2. 啟動兩個lamp,并且ip為上面nginx負(fù)載均衡配置的兩個点把。


    apache
  1. 測試負(fù)載均衡

    server1

    server2
直接返回請求頭消息橘荠,會發(fā)現(xiàn)請求是落在這兩臺服務(wù)器上,并且由于沒有配置任何負(fù)載均衡模塊郎逃,默認(rèn)nginx使用論詢機(jī)制哥童。

redis解決session共享問題

雖然現(xiàn)在負(fù)載均衡實(shí)現(xiàn)了,但是http服務(wù)器總是避免不了要記錄用戶登錄狀態(tài)的褒翰,傳統(tǒng)的模式贮懈,一臺服務(wù)器運(yùn)行匀泊,直接記錄在服務(wù)器上就可以,但是現(xiàn)在
朵你,由于有了負(fù)載均衡各聘,每次分發(fā)請求給服務(wù)器有可能不是同一臺服務(wù)器,這就導(dǎo)致session不同步的問題抡医,為了解決這個問題躲因,nginx也有方案,ip_hash模塊
忌傻,以及其他的第三方模塊大脉,如sticky。雖然可以解決這個問題水孩,但是都把一個用戶的請求發(fā)給了固定的一臺服務(wù)器镰矿,服務(wù)器資源利用稍微還是有點(diǎn)不太讓人滿意。

因此俘种,共享session就成了一個不錯的解決方案衡怀。

其原理就是,把原保存在其中一臺服務(wù)器上的session安疗,共享到redis抛杨,讓后端所有的服務(wù)器都能共享用戶的登錄狀態(tài),保證即使用戶的請求被分到不同的后端服務(wù)器荐类,
也能保證用戶的狀態(tài)能被服務(wù)器獲取到怖现。

具體實(shí)現(xiàn),php可以配置php.ini文件玉罐,或者利用php框架屈嗤,比如yii就可以直接在框架中配置,具體我就不在贅述了吊输。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饶号,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子季蚂,更是在濱河造成了極大的恐慌茫船,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扭屁,死亡現(xiàn)場離奇詭異算谈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)料滥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門然眼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葵腹,你說我怎么就攤上這事高每∮炱瘢” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵鲸匿,是天一觀的道長雁社。 經(jīng)常有香客問我,道長晒骇,這世上最難降的妖魔是什么霉撵? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮洪囤,結(jié)果婚禮上徒坡,老公的妹妹穿的比我還像新娘。我一直安慰自己瘤缩,他們只是感情好喇完,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剥啤,像睡著了一般锦溪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上府怯,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天刻诊,我揣著相機(jī)與錄音,去河邊找鬼牺丙。 笑死则涯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冲簿。 我是一名探鬼主播粟判,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峦剔!你這毒婦竟也來了档礁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤吝沫,失蹤者是張志新(化名)和其女友劉穎呻澜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野舶,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡易迹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了平道。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡供炼,死狀恐怖一屋,靈堂內(nèi)的尸體忽然破棺而出窘疮,到底是詐尸還是另有隱情,我是刑警寧澤冀墨,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布闸衫,位于F島的核電站,受9級特大地震影響诽嘉,放射性物質(zhì)發(fā)生泄漏蔚出。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一虫腋、第九天 我趴在偏房一處隱蔽的房頂上張望骄酗。 院中可真熱鬧,春花似錦悦冀、人聲如沸趋翻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踏烙。三九已至,卻和暖如春历等,著一層夾襖步出監(jiān)牢的瞬間讨惩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工寒屯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留步脓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓浩螺,卻偏偏與公主長得像靴患,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子要出,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容