分離mysql和儲存實現雙web負載均衡
此篇博文僅限涉及web伺服器部分,至於負載均衡的實現可以按照需求來做,可以是基於DNS解析的負載均衡,也可以用lvs或者專用的負載均衡器(如F5或randware)
這是一個比較簡單的負載均衡的實現,沒有考慮到ha。
具體規劃:
將2臺web伺服器做成一個discuz論壇的小叢集。合理分配2臺web伺服器的任務,分離檔案共享和mysql應用,使2臺伺服器同時提供web服務,但由web1充當網路儲存,實現資料的同步,web2充當資料庫伺服器,提供資料的呼叫。合理的分配2臺伺服器的負載,實現真正意義的負載均衡。
此情景只是一個負載均衡的小叢集,未考慮到高可用的情況,在中小型企業中,如果一臺伺服器撐不住,但業務也不是特別重要,允許在伺服器掛掉的情況下能斷線一段時間的情況下使用。
具體是在web1上做NFS檔案共享,將網頁放置在web1上。將資料庫放置在web2上。然後2臺web伺服器同時提供web服務,外界訪問2臺伺服器時得到的網頁結果是一樣的
實現過程
首先在web1中安裝nfs,apache,php
[root@localhost ~]# yum install nfs-utils httpd php php-mysql –y
建立網站目錄
[root@localhost ~]# mkdir /dz
為了方便,將網站目錄的許可權修改為777(在真正為企業配置時千萬別這麼來,這裡只是為了實驗方便)
[root@localhost /]# chmod 777 dz -R
修改網址apache的配置檔案,指向dz目錄,這裡只修改一行
DocumentRoot “/dz”
關閉selinux和iptables,並開啟httpd
在dz中建立php測試頁面,確保php執行正常
[root@localhost dz]# vi index.php #寫入以下內容
- <?php
- phpinfo();
- ?>
開啟頁面測試一下
配置nfs服務,共享網站目錄dz
[root@localhost dz]# vi /etc/exports #加入下面一行
- /dz 192.168.92.11(rw,async)
啟動nfs服務
web1暫時配置到這裡,先把配置web2配置一下
在web2上安裝apache,php,mysql-server
[root@localhost ~]# yum install nfs-utils httpd php php-mysql mysql-server -y
然後先掛載web1的nfs目錄
[root@localhost ~]# mount -t nfs 192.168.92.10:/dz /dz
和web1一樣關閉selinux和iptables 並開啟httpd,
然後修改apache的配置和web1一樣網站路徑為/dz,不過這裡的/dz就是從web1網路掛載過來的/dz了,這裡不再詳細列出過程了,和web1的一樣
然後開始為mysql配置論壇的資料庫table和賬戶
[root@localhost ~]# mysql
- mysql> create database dz;
- Query OK, 1 row affected (0.01 sec)
- mysql> grant all privileges on dz.* to dzroot@192.168.92.10 identified by `123456`;
- Query OK, 0 rows affected (0.01 sec)
- mysql> grant all privileges on dz.* to dzroot@192.168.92.11 identified by `123456`;
- Query OK, 0 rows affected (0.00 sec)
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
資料庫配置好後開始配置discuz
首先到WEB1上進行配置。
[root@localhost dz]# unzip Discuz_X2.5_SC_UTF8.zip #解壓discuz程式
進入/dz/config目錄 開啟編輯config_global_default.php檔案。
[root@localhost config]# vi config_global_default.php 修改以下幾行內容
- $_config[`db`][1][`dbhost`] = `192.168.92.11`; #資料庫一定要指向web2
- $_config[`db`][1][`dbuser`] = `dzroot`;
- $_config[`db`][1][`dbpw`] = `123456`;
- $_config[`db`][1][`dbcharset`] = `utf8`;
- $_config[`db`][1][`pconnect`] = 0;
- $_config[`db`][1][`dbname`] = `dz`;
- $_config[`db`][1][`tablepre`] = `pre_`;
然後將其複製為以下名稱(為了防止安裝discuz時報錯)
[root@localhost config]# cp config_global_default.php config_global.php
[root@localhost config]# cp config_ucenter_default.php config_ucenter.php
瀏覽器中開啟192.168.92.10,開始discuz的安裝,進行到這一步時,對相應提示的目錄進行許可權的修改
安裝成功後,用瀏覽器開啟192.168.92.10,進入管理員後臺,新增一個板塊
然後開啟192.168.92.11
可以看到2個web之間的內容是同步的
這就簡單的搭建了一個小小的負載均衡的叢集應用
實現比較簡單,重要的思路的開放。能夠讓不同的應用的壓力均攤到每個伺服器上,不浪費伺服器效能,這才是負載均衡的意義。
本文轉自lustlost 51CTO部落格,原文連結:http://blog.51cto.com/lustlost/926764,如需轉載請自行聯絡原作者
相關文章
- Mycat實現mysql的負載均衡讀寫分離MySql負載
- Nginx 動靜分離與負載均衡的實現Nginx負載
- Nginx + Tomcat 動靜分離實現負載均衡NginxTomcat負載
- HaProxy 實現 MySQL 負載均衡MySql負載
- 採用Atlas+Keepalived實現MySQL讀寫分離、讀負載均衡MySql負載
- Nginx使用篇:實現負載均衡、限流與動靜分離Nginx負載
- 【DB寶42】MySQL高可用架構MHA+ProxySQL實現讀寫分離和負載均衡MySql架構負載
- 【Tony 老師】基於 Maxscale 實現讀寫分離和負載均衡負載
- Tomcat+Nginx實現動靜分離和負載均衡架構部署TomcatNginx負載架構
- Haproxy搭建 Web 群集實現負載均衡Web負載
- Linux負載均衡雙機實現文件Linux負載
- MySQL Proxy 實現 MySQL 讀寫分離提高併發負載MySql負載
- 圖片叢集分散式儲存和負載均衡分散式負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載
- MySQL5.6基於GTID同步複製,與如何實現MySQL負載均衡、讀寫分離MySql負載
- MySQL Route負載均衡與讀寫分離Docker環境使用MySql負載Docker
- Nginx+Tomcat實現負載均衡、動靜分離叢集部署NginxTomcat負載
- Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享NginxTomcatRedis負載Session
- nginx實現負載均衡Nginx負載
- docker+mysql叢集+讀寫分離+mycat管理+垂直分庫+負載均衡DockerMySql負載
- 負載均衡和動態負載均衡分別是什麼?-VeCloud負載Cloud
- Nginx—tomcat負載均衡動靜分離群集NginxTomcat負載
- 【Mycat】Mycat讀寫分離與負載均衡2負載
- Linux雙網路卡繫結實現負載均衡和失效保護Linux負載
- Amoeba實現MySQL的負載均衡、故障轉移MySql負載
- Haproxy+Keepalived+MySQL實現讀均衡負載MySql負載
- 雙機高可用、負載均衡、MySQL(讀寫分離、主從自動切換)架構設計負載MySql架構
- localForage——輕鬆實現 Web 離線儲存Web
- GRPC 負載均衡實現RPC負載
- Ribbon實現負載均衡負載
- Oracle負載均衡實現方式Oracle負載
- Nginx + IIS 實現負載均衡Nginx負載
- keepalived+haproxy實現mysql負載均衡高可用MySql負載
- CentOS7 實現 Keepalived + Nginx 實現高可用 Web 負載均衡CentOSNginxWeb負載
- dubbo(三):負載均衡實現解析負載
- 資料庫的讀寫分離與負載均衡策略資料庫負載
- nginx反向代理負載均衡與動靜頁面分離Nginx負載
- Mycat 雙主雙從-負載均衡-高可用負載