細談普通網站的後臺構建實戰----my note

   

  好比你建一個普通網站,流量不高。如何設計 php




普通PC環境,大約同時支持2000到3000的併發量,固然,我不排除有高手進行後臺服務器優化,實現更高的併發量。 html

一些大型的網站會採起「分流」的方式去將鏈接平均分攤到後臺服務器,例如前面一臺主機負責接收鏈接和與後臺服務器的負載均衡。以下圖: node

 

實例如途中,一共須要配置了多臺服務器。 mysql

server1——裝有Centos6.3,Web server 爲Nginx,主要功能對網站用戶進行負載均衡,將訪問派送到後臺的Webserver。 linux

server2——裝有Centos6.3,基本配置爲LAMP,或者LNMP。二者皆有優缺點。主要用戶保存網站,數據存儲和網站數據處理等工做。 nginx

server3——同上 sql

server4——同上 數據庫

…… apache

…… 瀏覽器

同時,爲了保證數據的一致性,咱們會採起一種數據庫同步的操做,利用1主2從,最後再作加入新從的測試。其實以前我也作過,具體能夠參照以前寫的博客《Mysql 複製(Replication)實現》

正式開始配置

先分別爲4臺server安裝Centos6.3,不選擇安裝Webserver,Database和PHP等,只安裝Centos。

配置輔助負載均衡的server前,先配置後臺server,這裏,我選擇配置LNMP,具體配置方法能夠參照我博文《Centos 6.2 實際工做環境搭建(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個可選安裝,以下圖

1,2,3 是安裝獨立的環境,不可自由切換nginx,apache,nginx+apache應用環境

4 是安裝全部,便可自由切換nginx,apache,nginx+apache的應用環境

編譯安裝比較慢,現只提供在CentOS 5.X/wdlinux_base 5.X/wdos 1.X 系統下的RPM安裝,5分鐘就能夠

也能夠直接下載wdos的安裝,集成最新的wdcp,不過目前只有32位

具體可看 http://www.wdlinux.cn/bbs/thread-2431-1-1.html 

雖然安裝LANMP,但實際應用的時候會將服務系形似分配成LNMP或者LAMP。

測試經過就繼續安裝,分別安裝了3臺。

測試經過後,實際環境爲:

1.LN(Centos6.3+Nginx)用於負載均衡---IP地址:192.168.1.100

2.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務器---IP地址:192.168.1.171

3.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務器---IP地址:192.168.1.172

4.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服務器---IP地址:192.168.1.173

5.LNMP(Centos6.3+Nginx+Mysql+PHP)備用Web服務器---IP地址:192.168.1.174

Mysql複製

按照一開始的架構圖,須要1主2從,因此開始配置mysql複製,具體能夠參照以前寫的博客《Mysql 複製(Replication)實現》 使用前要先說明,若是使用一鍵安裝版,就須要將read_only = 1 這個選項去掉,不能添加。這個只讀設置會影響一鍵安裝版的PHP管理頁面。

2號服務器的Mysql爲主,3號,4號的爲從。

配置過程當中,要將2個數據庫列出到排外,不須要進行復制同步。避免數據庫出錯。

 
  1. #主/etc/my.cnf  
  2. binlog_ignore_db=mysql,wdcpdb  
  3. #從/etc/my.cnf  
  4. replicate-ignore-db=mysql  
  5. replicate-ignore-db=wdcpdb 

配置完畢後,在兩天從中輸入:

 
  1. SHOW SLAVE STATUS\G 

查看複製狀態,當看見

 
  1. Slave_IO_Running: Yes  
  2. Slave_SQL_Running: Yes 

就已經證實複製已經能夠正常運做。在主隨便建立一個數據庫,而後在從刷新,就會出現剛複製過來的數據庫。

虛擬主機

作到這一步,基本就已經完成,剩下的就是創建虛擬主機放置網站和設定Nginx負載均衡。

打開瀏覽器輸入192.168.1.171:8080,進入wdcp服務器管理界面,根據下圖進行簡單設置。

 

 

簡單說明,增長服務器端口,是由於文章開頭已經說過,在假設沒有DNS的前提下進行操做,沒有DNS的域名識別,如何進行虛擬主機識別呢?用端口。我這裏分別開通了81,82.Web引擎,默認是Lanmp的就是Linux+apache+Nginx+Mysql+php,咱們這個項目須要高併發量,因此設置了Lnmp就是Web引擎爲Nginx。設置完成後重啓。

設置虛擬主機

 

使用該管理系統新建虛擬主機很是簡單,只須要點擊新建站點,寫一下域名,就能夠了,固然,記得將端口改成81.分別在三臺服務器中創建虛擬主機,端口號均爲81.實際的第一個站點的虛擬主機以下:

 
  1. 1-server-192.168.1.171:81  
  2. 2-server-192.168.1.172:81  
  3. 3-server-192.168.1.173:81 

注意問題:系統時間

有時候安裝完系統,系統時間會跟實際時間有出入,多是時區問題,多是虛擬機問題,等等,不管問題,都要調整時間,下面爲Linux調整時間的方法。

 
  1. 修改linux的時間可使用date指令  
  2.  
  3. 在命令行輸入:  
  4.  
  5. date  
  6.  顯示當前時間 Fri Aug  3 14:15:16 CST 2007 
  7.  
  8. date -s   
  9. 按字符串方式修改時間  
  10. 能夠只修改日期,不修改時間,輸入: date -s 2007-08-03 
  11. 只修改時間,輸入:date -s 14:15:00 
  12. 同時修改日期時間,注意要加雙引號,日期與時間之間有一空格,輸入:date -s "2007-08-03 14:15:00" 
  13.  
  14. 修改完後,記得輸入:clock -w   
  15. 把系統時間寫入CMOS 

負載均衡

對於LN 的安裝我就再也不說明,直接跳過。(Linux+Nginx)

首先要開通負責負載均衡服務器(LN)的80端口。

1.配置Nginx.conf

 
  1. vi /etc/nginx/nginx.conf 

修改爲

 
  1. user  nginx;  
  2. worker_processes 10;  
  3. #error_log  logs/error.log;  
  4. #error_log  logs/error.log  notice;  
  5. #error_log  logs/error.log  info;  
  6. #pid        logs/nginx.pid;  
  7. worker_rlimit_nofile 51200;  
  8. events  
  9. {  
  10.       use epoll;  
  11.       worker_connections 51200;  
  12. }  
  13. http  
  14. {  
  15.       include       /etc/nginx/mime.types;  
  16.       default_type  application/octet-stream;  
  17.       keepalive_timeout 120;  
  18.       tcp_nodelay on;  
  19.     upstream s01 {  
  20.     server 192.168.1.171:81;  
  21.     server 192.168.1.172:81;  
  22.     server 192.168.1.173:81;  
  23.     }  
  24.     server {  
  25.     listen 80;  
  26.     server_name s01.domain.com;  
  27.     location / {  
  28.                        proxy_pass        http://s01;  
  29.               }  
  30.     }  

2.重啓Nginx

 
  1. service nginx restart
OK啦
相關文章
相關標籤/搜索