细谈普通网站的后台构建实战----my note
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
? ?
? 比如你建一個(gè)普通網(wǎng)站,流量不高。如何設(shè)計(jì)
普通PC環(huán)境,大約同時(shí)支持2000到3000的并發(fā)量,當(dāng)然,我不排除有高手進(jìn)行后臺(tái)服務(wù)器優(yōu)化,實(shí)現(xiàn)更高的并發(fā)量。
一些大型的網(wǎng)站會(huì)采取“分流”的方式去將連接平均分?jǐn)偟胶笈_(tái)服務(wù)器,例如前面一臺(tái)主機(jī)負(fù)責(zé)接收連接和與后臺(tái)服務(wù)器的負(fù)載均衡。如下圖:
?
實(shí)例如途中,一共需要配置了多臺(tái)服務(wù)器。
server1——裝有Centos6.3,Web server 為Nginx,主要功能對(duì)網(wǎng)站用戶進(jìn)行負(fù)載均衡,將訪問派送到后臺(tái)的Webserver。
server2——裝有Centos6.3,基本配置為LAMP,或者LNMP。兩者皆有優(yōu)缺點(diǎn)。主要用戶保存網(wǎng)站,數(shù)據(jù)存儲(chǔ)和網(wǎng)站數(shù)據(jù)處理等工作。
server3——同上
server4——同上
……
……
同時(shí),為了保證數(shù)據(jù)的一致性,我們會(huì)采取一種數(shù)據(jù)庫同步的操作,利用1主2從,最后再做加入新從的測試。其實(shí)之前我也做過,具體可以參照之前寫的博客《Mysql 復(fù)制(Replication)實(shí)現(xiàn)》
正式開始配置
先分別為4臺(tái)server安裝Centos6.3,不選擇安裝Webserver,Database和PHP等,只安裝Centos。
配置輔助負(fù)載均衡的server前,先配置后臺(tái)server,這里,我選擇配置LNMP,具體配置方法可以參照我博文《Centos 6.2 實(shí)際工作環(huán)境搭建(LNMP)》
也可以使用《一鍵安裝LANMP》
這里我所使用的是一鍵安裝LANMP版本,配置比較簡單,比較適合新手。
下載安裝
wget?http://dl.wdlinux.cn:5180/lanmp_v2.4.tar.gz
tar zxvf lanmp_v2.4.tar.gz
sh in.sh
4個(gè)可選安裝,如下圖
1,2,3 是安裝獨(dú)立的環(huán)境,不可自由切換nginx,apache,nginx+apache應(yīng)用環(huán)境
4 是安裝所有,即可自由切換nginx,apache,nginx+apache的應(yīng)用環(huán)境
編譯安裝比較慢,現(xiàn)只提供在CentOS 5.X/wdlinux_base 5.X/wdos 1.X 系統(tǒng)下的RPM安裝,5分鐘就可以
也可以直接下載wdos的安裝,集成最新的wdcp,不過目前只有32位
具體可看?http://www.wdlinux.cn/bbs/thread-2431-1-1.html?
雖然安裝LANMP,但實(shí)際應(yīng)用的時(shí)候會(huì)將服務(wù)系形似分配成LNMP或者LAMP。
測試通過就繼續(xù)安裝,分別安裝了3臺(tái)。
測試通過后,實(shí)際環(huán)境為:
1.LN(Centos6.3+Nginx)用于負(fù)載均衡---IP地址:192.168.1.100
2.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務(wù)器---IP地址:192.168.1.171
3.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務(wù)器---IP地址:192.168.1.172
4.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務(wù)器---IP地址:192.168.1.173
5.LNMP(Centos6.3+Nginx+Mysql+PHP)備用Web服務(wù)器---IP地址:192.168.1.174
Mysql復(fù)制
按照一開始的架構(gòu)圖,需要1主2從,所以開始配置mysql復(fù)制,具體可以參照之前寫的博客《Mysql 復(fù)制(Replication)實(shí)現(xiàn)》?使用前要先說明,如果使用一鍵安裝版,就需要將read_only = 1?這個(gè)選項(xiàng)去掉,不能添加。這個(gè)只讀設(shè)置會(huì)影響一鍵安裝版的PHP管理頁面。
2號(hào)服務(wù)器的Mysql為主,3號(hào),4號(hào)的為從。
配置過程中,要將2個(gè)數(shù)據(jù)庫列出到排外,不需要進(jìn)行復(fù)制同步。避免數(shù)據(jù)庫出錯(cuò)。
#主/etc/my.cnf ? binlog_ignore_db=mysql,wdcpdb ? #從/etc/my.cnf ? replicate-ignore-db=mysql ? replicate-ignore-db=wdcpdb?配置完畢后,在兩天從中輸入:
SHOW?SLAVE?STATUS\G?查看復(fù)制狀態(tài),當(dāng)看見
Slave_IO_Running:?Yes ? Slave_SQL_Running:?Yes?就已經(jīng)證明復(fù)制已經(jīng)可以正常運(yùn)作。在主隨便創(chuàng)建一個(gè)數(shù)據(jù)庫,然后在從刷新,就會(huì)出現(xiàn)剛復(fù)制過來的數(shù)據(jù)庫。
虛擬主機(jī)
做到這一步,基本就已經(jīng)完成,剩下的就是建立虛擬主機(jī)放置網(wǎng)站和設(shè)定Nginx負(fù)載均衡。
打開瀏覽器輸入192.168.1.171:8080,進(jìn)入wdcp服務(wù)器管理界面,根據(jù)下圖進(jìn)行簡單設(shè)置。
?
?
簡單說明,增加服務(wù)器端口,是因?yàn)槲恼麻_頭已經(jīng)說過,在假設(shè)沒有DNS的前提下進(jìn)行操作,沒有DNS的域名識(shí)別,如何進(jìn)行虛擬主機(jī)識(shí)別呢?用端口。我這里分別開通了81,82.Web引擎,默認(rèn)是Lanmp的就是Linux+apache+Nginx+Mysql+php,我們這個(gè)項(xiàng)目需要高并發(fā)量,所以設(shè)置了Lnmp就是Web引擎為Nginx。設(shè)置完成后重啟。
設(shè)置虛擬主機(jī)
?
使用該管理系統(tǒng)新建虛擬主機(jī)非常簡單,只需要點(diǎn)擊新建站點(diǎn),寫一下域名,就可以了,當(dāng)然,記得將端口改為81.分別在三臺(tái)服務(wù)器中建立虛擬主機(jī),端口號(hào)均為81.實(shí)際的第一個(gè)站點(diǎn)的虛擬主機(jī)如下:
1-server-192.168.1.171:81 ? 2-server-192.168.1.172:81 ? 3-server-192.168.1.173:81?注意問題:系統(tǒng)時(shí)間
有時(shí)候安裝完系統(tǒng),系統(tǒng)時(shí)間會(huì)跟實(shí)際時(shí)間有出入,可能是時(shí)區(qū)問題,可能是虛擬機(jī)問題,等等,無論問題,都要調(diào)整時(shí)間,下面為Linux調(diào)整時(shí)間的方法。
修改linux的時(shí)間可以使用date指令 ? ? 在命令行輸入: ? ? date ? ?顯示當(dāng)前時(shí)間?Fri?Aug??3?14:15:16?CST?2007? ? date?-s? ? 按字符串方式修改時(shí)間 ? 可以只修改日期,不修改時(shí)間,輸入:?date?-s?2007-08-03? 只修改時(shí)間,輸入:date?-s?14:15:00? 同時(shí)修改日期時(shí)間,注意要加雙引號(hào),日期與時(shí)間之間有一空格,輸入:date?-s?"2007-08-03?14:15:00"? ? 修改完后,記得輸入:clock?-w? ? 把系統(tǒng)時(shí)間寫入CMOS?負(fù)載均衡
對(duì)于LN 的安裝我就不再說明,直接跳過。(Linux+Nginx)
首先要開通負(fù)責(zé)負(fù)載均衡服務(wù)器(LN)的80端口。
1.配置Nginx.conf
vi?/etc/nginx/nginx.conf?修改成
user??nginx; ? worker_processes?10; ? #error_log??logs/error.log; ? #error_log??logs/error.log??notice; ? #error_log??logs/error.log??info; ? #pid????????logs/nginx.pid; ? worker_rlimit_nofile?51200; ? events ? { ? ??????use?epoll; ? ??????worker_connections?51200; ? } ? http ? { ? ??????include???????/etc/nginx/mime.types; ? ??????default_type??application/octet-stream; ? ??????keepalive_timeout?120; ? ??????tcp_nodelay?on; ? ????upstream?s01?{ ? ????server?192.168.1.171:81; ? ????server?192.168.1.172:81; ? ????server?192.168.1.173:81; ? ????} ? ????server?{ ? ????listen?80; ? ????server_name?s01.domain.com; ? ????location?/?{ ? ???????????????????????proxy_pass????????http://s01; ? ??????????????} ? ????} ? }?2.重啟Nginx
service?nginx?restart OK啦轉(zhuǎn)載于:https://my.oschina.net/bigfool007139/blog/645267
總結(jié)
以上是生活随笔為你收集整理的细谈普通网站的后台构建实战----my note的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 一二事(8) - anno
- 下一篇: Oracle 学习笔记 11 -- 视图