nginx 負載均衡實踐

好久沒寫文章了,因為最近在安卓上寫一個小東西,寫完后,我發(fā)現(xiàn)我們編程的實在是沒什么意思.

不管你在哪個平臺編程,都是調用人家提供的API,現(xiàn)在開源時代,什么都有現(xiàn)成的,程序員滿街都是,我想搞點提神醒腦的玩意.

于是我研究了一下nginx,反向代理,動靜分離,負載均衡,這個挺好,我就開始了我的研究.

我決定用vmware搭建幾個虛擬機,給他們整上centOS7,用其中的一臺當代理服務器暴露出去,再安排二個虛擬機裝上apche當負載均衡服務器,進行傳說中高大上的分布式計算服務器集群,然后再安裝二個虛擬機作mysql主從數(shù)據(jù)庫,然后親自實踐一個前后端分離主從分離,動靜分離的網(wǎng)站+APP實踐.

話說從DOS時代過來的人,玩linux真他媽的好使,一點不覺得別扭,反而有一種遇到知己的感覺.

一個linux裝完就幾分鐘,而且不占內存,輕量級.

第一步當然是下載ISO鏡像啦,然后到虛擬機中新建一個20G的linux虛擬機,直接安裝,到最后一步,建一個root用戶密碼即可,不需要建立其他二級用戶,直接上ROOT開干.

第二步就是編譯安裝nginx了,話說這個nginx開源的真徹底,沒有二進制文件給你直接運行的,要你裝C的編譯環(huán)境現(xiàn)場編譯安裝,一個字,酸爽.

裝好之后,啟動nginx,啥也不做,直接在虛擬機中即可訪問到127.0.0.1,說明80端口成功開始監(jiān)聽http服務了,nginx開始運作了.不過我的目的不是在linux上訪問,而是在外網(wǎng)訪問,起碼我的真實主機和家里的手機,其他電腦也要能訪問啊,為了達到這一步,運行了各種奇怪的linux命令,配置了半天網(wǎng)絡,還整了個靜態(tài)IP,最后在vmware中設置80端口轉發(fā)到虛擬機IP地址80端口,這樣不管是手機還是其他電腦,輸入局域網(wǎng)IP,即可訪問到虛擬機中的nginx的歡迎主頁.

這個虛擬機直接暴露給外網(wǎng)訪問的,我還要搭建二臺apache服務器,用來負載均衡.安裝centOS的過程是一模一樣的,不同點在于第一臺只需安裝nginx,后二臺安裝的卻是apache+PHP,用來解析PHP代碼,提供給nginx訪問.

安裝apache倒是順利,但也在啟動啊,防火墻等地方費了不少精神,因為說什么centOS版本太高,以前的/etc/init.d/下面沒有iptables這個服務,為這個iptables搞了很長的時間,關于iptables的一些命令,一會能運行,一會不能運行的,真是坑的很.

于第二天的時候,我把這個虛擬機給刪除了,用了原生的systemctl來管理服務,用了firewalld來管理防火墻,畢竟iptables這個是過時了,必須與時俱進.

然后還要安裝ftp服務器

yum install vsftpd

firewalld開啟80 21端口后,就能在外網(wǎng)進行訪問了

firewall-cmd --add-service=ftp --permanent ? ? ##永久開放ftp服務

firewall-cmd --remove-service=ftp --permanent ?##永久移除ftp服務

firewall-cmd --add-port=80/tcp --permanent ? ? ##永久添加80端口

然后用systemctl重啟防火墻

sytemctl restart firewalld

新版本centos主意是要注意二點,一個是系統(tǒng)服務管理變成了systemctl,就不要再用舊的service命令了,盡量只用新的,混著用容易拉低咱們的智商.

第二個是防火墻不是iptables了,變成了用firewalld服務,用firewall-cmd命令來管理,習慣就好,有些教程他媽的一上來就刪除firewalld,重新安裝iptables,這都是一些不思進取的廢物,千萬不要學這些行為.

我們一定要擦亮眼睛,不要人云亦云.

接下來,輸入命令 yum install php php-devel -y 全自動安裝PHP5.4,而且安裝完是即時生效的,不用像windows中配置什么路徑亂七八糟的.

為保險起見,還是重啟httpd服務,systemctl restart httpd

apache安裝后,網(wǎng)頁文件存放在 /var/www/html中,在這個目錄中建一個index.php文件,里面輸入

<?php phpinfo(); ?>保存,打開即可以看到效果了.

我目前的配置是這樣的,在真正的主機上輸入localhost,經(jīng)vmware的端口轉發(fā)到虛擬機nginx上,然后nginx做負載均衡轉發(fā)到二臺apache虛擬機上.

所以我在真實主機上輸入localhost即可看到虛擬機中的網(wǎng)頁顯示效果了.

這只是用虛擬機在模擬負載均衡,如果有錢,咱們直接在家里就能建數(shù)據(jù)中心了,全部是真實的主機,那就爽歪歪了.

咱們可以安裝一個apache下的壓力測試工具來測試下性能

yum install httpd-tools -y

進行測試:模擬1000個用戶發(fā)送20000個請求

ab?-n?20000?-c?1000?http://localhost/test.php

發(fā)現(xiàn)效果還不錯,90%的請求能在130ms內響應,一秒能處理2000+并發(fā)

現(xiàn)在是有三個虛擬機了,還差二個用來放mysql,繼續(xù)建唄

這兩臺比較單一,就是安裝mysql后,新建用戶并給予遠程登錄的權限,開啟3306端口

create user‘name’@’192.168.*.*|%’identified by‘pwd’?

GRANT ALL PRIVILEGES ON 數(shù)據(jù)庫名.* TO '用戶名'@'ip地址' IDENTIFIED BY '密碼' WITH GRANT OPTION;

FLUSH PRIVILEGES; //更新授權

firewall-cmd --add-port=3360/tcp --permanent

現(xiàn)在跑到主機上遠程連接測試,成功!

接下來,要設置第一臺虛擬機nginx動靜分離了

編輯nginx.conf文件,增加location路由

location / --->首先全部導入apache服務器

location ~* \.(png|jpg|bmp|webp|js|css)$ {

? ? ? ? root html/web1/; ? ? ? ?#nginx的根是/usr/local/nginx/html,這里將靜態(tài)資源的請求全部發(fā)往web1目錄下取

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #也就是thinkphp的Public目錄被上傳到了web1下了

? ? ? ? expires 3d;

}

現(xiàn)在,我將關閉其中的一臺apache服務器,因為我要安裝我的php網(wǎng)站了,而安裝過程只需在其中一臺上安裝即可,也就是配置mysql的地址帳號密碼等信息,并不需要二臺同時安裝,安裝一臺后,直接把安裝過后的網(wǎng)站文件全站復制到另一臺apache服務器中即可.

這個過程就不寫了,沒什么技術含量

完成后,在主機輸入localhost成功進入網(wǎng)站頁面,而且是真的動靜分離+負載均衡了!

接下來要做的事,就是將mysql庫設置主從,這樣一個小型分布式服務器集群就算完成了.

最后,就是要接入數(shù)據(jù)庫中間件,徹底將數(shù)據(jù)庫隔離開來以保安全

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末耸棒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吗讶,更是在濱河造成了極大的恐慌躺率,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棵逊,死亡現(xiàn)場離奇詭異伤疙,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門徒像,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黍特,“玉大人,你說我怎么就攤上這事锯蛀∶鹬裕” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵旁涤,是天一觀的道長今布。 經(jīng)常有香客問我,道長拭抬,這世上最難降的妖魔是什么部默? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮造虎,結果婚禮上傅蹂,老公的妹妹穿的比我還像新娘。我一直安慰自己算凿,他們只是感情好份蝴,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氓轰,像睡著了一般婚夫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上署鸡,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天案糙,我揣著相機與錄音,去河邊找鬼靴庆。 笑死时捌,一個胖子當著我的面吹牛,可吹牛的內容都是我干的炉抒。 我是一名探鬼主播奢讨,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焰薄!你這毒婦竟也來了拿诸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤塞茅,失蹤者是張志新(化名)和其女友劉穎亩码,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凡桥,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蟀伸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年蚀同,在試婚紗的時候發(fā)現(xiàn)自己被綠了缅刽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啊掏。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖衰猛,靈堂內的尸體忽然破棺而出迟蜜,到底是詐尸還是另有隱情,我是刑警寧澤啡省,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布娜睛,位于F島的核電站,受9級特大地震影響卦睹,放射性物質發(fā)生泄漏畦戒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一结序、第九天 我趴在偏房一處隱蔽的房頂上張望障斋。 院中可真熱鬧,春花似錦徐鹤、人聲如沸垃环。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遂庄。三九已至,卻和暖如春劲赠,著一層夾襖步出監(jiān)牢的瞬間涛目,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工凛澎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留泌绣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓预厌,卻偏偏與公主長得像阿迈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轧叽,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容

  • 當在業(yè)務增長苗沧,生產環(huán)境里有很大的流量產生和比較高的并發(fā)量產生時,一般單機模式的服務已經(jīng)不再適合業(yè)務的需求炭晒。所以多機...
    Evtion閱讀 1,243評論 0 5
  • 基礎命令 為了在 sudo 中設置權限提升待逞,您需要編輯 sudoers 文件。 你不應該直接編輯文件网严,而是使用:s...
    米開朗基樂閱讀 1,907評論 0 5
  • 1识樱、第八章 Samba服務器2、第八章 NFS服務器3、第十章 Linux下DNS服務器配站點怜庸,域名解析概念命令:...
    哈熝少主閱讀 3,731評論 0 10
  • 不要輕易去依賴一個人当犯, 它會成為你的習慣。 你也許深愛一個人割疾, 但不會想與他永久在一起嚎卫, 因為在一起的時光太長太重...
    快樂靈芝閱讀 638評論 15 21
  • 堅持寫文的日子里麻昼,有欣喜奠支,有難言。朋友讀完的文章抚芦,發(fā)了這樣一句話胚宦,他說,內心安定的人燕垃,才能看你的文章枢劝,因為你的文章...
    旅游的晏小魚閱讀 3,301評論 295 199