LVS的简单示例(一)
LVS的簡單示例
???
?1.使用NAT模型的TCP協議類型的lvs服務負載均衡一個php應用,如Discuz!論壇或者phpMyAdmin;
?? 必要條件:三臺主機(一個調度器兩個服務器)
?? 聲明:172.16.1.11作為調度器,192.168.100.2和192.168.100.3作為服務器
????? 第一步:給調度器配置一個網絡適配器,配置其IP地址為192.168.100.1
????? 第二步:
??????? 服務器配置(Real Server即RS):
????????? 配置兩個RS的為同一網關:
??????????? # route add default gw 192.168.100.1
????????? 搭建LAMP來提供php服務:
??????????? 安裝httpd,php,php-mysql,mariadb-server(mysql-server)
??????????? # yum insatll httpd php php-mysql mariadb-server(mysql-server)
????????? RS1:1) 配置虛擬主機:
?????????? ?? # cd /etc/httpd/conf.d/
??????????? ? # vim vhost1.conf
????????????? <VirtualHost 192.168.100.2:80>
???????????????? ServerName www.ytc.com
???????????????? DocumentRoot "/myweb/vhost1"
???????????????? DirectoryIndex? index.php
???????????????? <Diretory "/myweb/vhost1">
?????????????????? Options? None
?????????????????? AllowOverride None
?????????????????? Require all granted
???????????????? </Diretory>
????????????? </VirtualHost>
???????? ? ? 2) 完善虛擬主機的目錄要求:
???????????? # mkdir -pv /myweb/vhost1
???????????? # cd /myweb/vhost1/
??????????? 3)做測試頁面,查看php能否提供服務
? ? ? ? ? ? ??? # vim index.php
????????????? Real Server 1 <dr>
????????????? ?php>
??????????????? phpinfo();
????????????? ?>
???????? ? ? 4) 開啟httpd服務:
???????????? # systemtl start httpd.service
???
????????? RS2:1) 配置虛擬主機
???????????? # cd /etc/httpd/conf.d/
???????????? # vim vhost2.conf
????????????? <VirtualHost 192.168.100.3:80>
???????????????? ServerName www.ytc.cn
???????????????? DocumentRoot "/myweb/vhost2"
???????????????? DirectoryIndex? index.php
???????????????? <Diretory "/myweb/vhost2">
?????????????????? Options? None
?????????????????? AllowOverride None
?????????????????? Require all granted
???????????????? </Diretory>
????????????? </VirtualHost>
????????? 2) 完善虛擬主機的目錄要求:
???????????? # mkdir -pv /myweb/vhost2
???????????? # cd /myweb/vhost2/
????????? 3)做測試頁面,查看php能否提供服務
? ? ? ? ? ? ??? # vim index.php
????????????? Real Server 2 <dr>
????????????? ?php>
??????????????? phpinfo();
????????????? ?>
????????? 4) 開啟httpd服務:
???????????? # systemtl start httpd.service
????? 第三步:調度器配置:
????????? 1)開啟核心路由轉發功能:
?????????? ? # echo 1 > /proc.sys/net/ipv4/ip_forward
????????? 2) 創建集群服務:
?????????? ? # ipvsadm -A -t 172.16.1.11:80 -s rr(前提安裝ipvsadm:yum install ipvsadm )
????????? 3) 向集群中添加RS:
???????? ??? # ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.2:80 -m -w 1
????????? ?? # ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.3:80 -m -w 1
????????? 注意:需注意SElinux 和 iptables的干擾:
??????????? 我將三臺主機做了如下操作:
?????????? ? # iptables -F
? ? ? ? ? ? ? ? # setenforce 0
? ? ?? 配置完畢后:
? ? ? ? ? ? web端測試:
? ? ? ? ? ? 第一次輸入:172.16.1.11/
??????????????????????????????
???????????????????????????????第二次輸入:172.16.1.11/
????????? f
???????????????????????????? 測試完后,php可以成功提供服務:
????????? 接下來,在RS1和RS2上配置wordpress應用:
????????? 將wordpress應用分別傳送到RS1的/myweb/vhost1和RS2的/myweb/vhost2目錄下并解壓:
?????????? # tar xf wordpress-4.2-zh_CN.tar.gz
????????? 在web端測試:
?????????? 輸入172.16.1.11/wordpress/index.php
??????????
?????????????????????? 需要注意的是:
??????????? 1)調度器需要進行會話保持,如果不進行會話保持,登錄則不會成功;
??????????? 2)RS1和RS2需要進行數據庫共享,不然RS1服務器損壞后,用woedpress時,之前的信息全部丟失,
????????????? 所以,RS1和RS2需共享存儲;
???????????????????????????
????????? 1):調度器設置會話保持功能:
?????????????? # ipvsadm -E -t 172.16.1.11:80? -s? rr? -p? 5
??????????????????????????????? 2):服務器配置:
?????????? 開啟MySQL服務,為wordpress創建一個數據庫,并授權用戶登錄wordpress
??????????? # systemctl? start mariadb.service
????????? ?? MariaDB [(none)]> create database wordpressdb;
???? ? ? ? ? ? MariaDB [(none)]> grant all? on? *.* to 'wpuser'@'192.168.%.%' identified by '123456';
?????????? 共享數據庫:
???????????? NFS實現:
???? ? ? ? ? ?? 首先在RS1上創建共享目錄/data并修改其權限:
????????????? ~]# mkdir /data
????????????? ~]# chmod 757 /data
????????????? 編輯/etc/exports文件,聲明共享目錄:
????????????? 即在文件中添加一行:
????????????? /data??? *(rw,no_root_squash)
????????????? 開啟NFS服務并查看2049端口是否被監聽:
????????????? ~]# systemctl start nfs
????????????? 然后在RS2創建目錄/mydata
????????????? ~]# mkdir /mydata
???? ? ? ? ? ? ? 將RS1的共享目錄/data掛載到RS2的/mydata下
????????????? ~]# mount -t nfs 172.16.1.20:/data /mydata
????????????? 將本地的mysqld服務的數據目錄設置為/mydata:
????????????? ~]# vim /etc/my.cnf
????????????? 將datadir設置為/mydata
????????????? [mysqld]
????????????? datadir=/mydata
????????????? 把資源放到/mydata下并查看/mydata:
????????????? ~]# cp -a /var/lib/mysql/* /mydata/
????????????? ~]# ls /mydata
??????? ? ? ?? ? ibdata1? ib_logfile0? ib_logfile1? mysql? mysql.sock? test? ultrax? ytc? ytc123? ytc.txt
????????????? 開啟數據庫服務:
????????????? ~]# service mysqld start
????????????? Starting mysqld:?????????????????????????????????? [? OK? ]
?????????????
????????????? 完成后在web端訪問:
????????????? 輸入172.16.1.11/
?????????????
????????????????????????????????????????????? 輸入用戶名密碼后:
?????????????????????????????????????????????
?????????????????????????????????????????????? 這樣就可以使用wordpress了;
?????????
?????
????????????????????????????????????????????????
???????????
如
轉載于:https://blog.51cto.com/yuantianchi/2126341
總結
以上是生活随笔為你收集整理的LVS的简单示例(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot Security
- 下一篇: 如何使用visual studio 20