lvs負載集群實驗(實現wordpress)

lvs負載集群實驗(實現wordpress)

項目要求:

(1) lvs 調度兩臺 nginx+php-fpmreal-server,采用 dr 模型,調度算法為 rr

(2) mariadb real-server 提供數據庫,nfs 掛載至 2 real-server 提供文件服務

(3) 由于實驗環境地址沖突將VIP替換為172.18.60.60

實施步驟:

一、配置NFS+mariadb-server

1、使用yum安裝相關軟件

[root@localhost
~]# yum install -y nfs-utils rpcbind mysql-server nginx

2、啟動數據庫,配置數據庫,創建數據庫和授權用戶,并退出

[root@localhost
~]# service start mysqld

[root@localhost
~]# mysql

mysql>
create database wpdb;

Query
OK, 1 row affected (0.00 sec)

mysql>
grant all on wpdb.* to ‘wpuser’@’172.18.%’ identified by ‘wppass’;

Query
OK, 0 rows affected (0.00 sec)

mysql>
exit

Bye

3、創建data目錄,下載wordpress安裝包并解壓,并且賦予wordpress文件夾屬主屬組

[root@localhost
~]# mkdir /data/

[root@localhost
~]# cd /data/

wget
ftp://172.18.0.1/pub/Sources/sources/httpd/wordpress-4.3.1-zh_CN.zip

[root@localhost
~]#unzip wordpress-4.3.1-zh_CN.zip

[root@localhost
data]# chown -R nginx.nginx /data/wordpress

[root@localhost
data]# ll

drwxr-xr-x
5 nginx nginx    4096 Sep 16  2015 wordpress

-rw-r–r–
1 root  root  7518362 May 
9 20:59 wordpress-4.3.1-zh_CN.zip

4、設置文件夾共享

[root@localhost
data]# vim /etc/exports

/data/wordpress
172.18.10.1[01](rw)

 

5、啟動nfs服務,注意,必須優先啟動rpcbind服務,才能成功啟動nfs服務,不然報錯。

[root@localhost
data]# service rpcbind start

Starting
rpcbind:                                         
[  OK  ]

[root@localhost
data]# service nfs start

Starting
NFS services:                                     [  OK  ]

Starting
NFS quotas:                                       [  OK  ]

Starting
NFS mountd:                                       [  OK  ]

Starting
NFS daemon:                                       [  OK  ]

Starting
RPC idmapd:                                       [  OK  ]

6、查看共享的文件服務

[root@localhost
data]# showmount -e 172.18.249.57

Export
list for 172.18.249.57:

/data/wordpress
172.18.10.1[01]

成功共享

二、配置Nginx+php-fpm server1

1、 使用yum安裝相關服務

[root@localhost
~]# yum install -y nginx php-fpm php-mysql nfs-utils

2、 創建文件路徑wordpress目錄

[root@localhost
~]# mkdir -pv /data/wordpress

3、 啟動nginx服務,并編輯相關配置文件wdps.conf

[root@localhost
~]# vim /etc/nginx/conf.d/wdps.conf

server
{

        listen          80 default_server;

        server_name     www.magedu.com;

        root            /data/wordpress/;

        index           index.php index.html index.htm;

        location / {

        }

 

        location ~ \.php$ {

                fastcgi_pass 127.0.0.1:9000;

                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME
/data/wordpress/$fastcgi_script_name;

                include fastcgi_params;

        }

}

[root@localhost
conf.d]# scp wdps.conf 172.18.10.11:/etc/nginx/conf.d/wdps.conf

[root@localhost
conf.d]# vim default.conf

刪除 default_server字段

4、 啟動nginx

[root@localhost
conf.d]# nginx

[root@localhost
conf.d]# ss –tnl

5、 啟動php-fpm服務

[root@localhost
~]# service php-fpm start

Starting
php-fpm:                                          [ 
OK  ]

6、 將后端共享的wordpress文件夾掛載

[root@localhost
data]# mount -t nfs 172.18.249.57:/data/wordpress /data/wordpress

7、 編寫lvs-dr腳本

[root@localhost
~]# vim dr.sh

#!/bin/bash

VIP=172.18.50.50

case
“$1” in

start)

        echo “配置 lvsRealServer 開始…”

        ifconfig lo:0 $VIP broadcast $VIP
netmask 255.255.255.255 up  ##
配置 VIP

        route add -host $VIP dev lo:0  ## 添加主機路由

        ## 限制響應和通告級別

        echo “1” >
/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo “1” >
/proc/sys/net/ipv4/conf/all/arp_ignore

        echo “2” >
/proc/sys/net/ipv4/conf/lo/arp_announce

        echo “2” >
/proc/sys/net/ipv4/conf/all/arp_announce

        ;;

stop)

        echo “正在關閉 lvsRealserver”

        ifconfiglo:0down

        echo “0” >
/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo “0” >
/proc/sys/net/ipv4/conf/all/arp_ignore

        echo “0” >
/proc/sys/net/ipv4/conf/lo/arp_announce

        echo “0” >
/proc/sys/net/ipv4/conf/all/arp_announce

        ;;

*)

        echo “用法:$0{start|stop}”

        exit 1

esac

[root@localhost
~]# bash dr.sh start

配置 lvsRealServer 開始

[root@localhost
~]# scp dr.sh 172.18.10.11:/root/

[root@localhost
~]# ip a

1:
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd
00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet 172.18.50.50/32 brd 172.18.50.50 scope
global lo:0

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2:
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000

    link/ether 00:0c:29:07:27:ff brd
ff:ff:ff:ff:ff:ff

    inet 172.18.10.10/16 brd 172.18.255.255
scope global eth1

    inet6 fe80::20c:29ff:fe07:27ff/64 scope
link

       valid_lft forever preferred_lft forever

三、配置Nginx+php-fpm server2

8、 使用yum安裝相關服務

[root@localhost
~]# yum install -y nginx php-fpm php-mysql nfs-utils

9、 創建文件路徑wordpress目錄

[root@localhost
~]# mkdir -pv /data/wordpress

10、              啟動nginx服務,并編輯相關配置文件wdps.conf

[root@localhost
~]# vim /etc/nginx/conf.d/wdps.conf

server
{

        listen          80 default_server;

        server_name     www.magedu.com;

        root            /data/wordpress/;

        index           index.php index.html index.htm;

        location / {

        }

 

        location ~ \.php$ {

                fastcgi_pass 127.0.0.1:9000;

                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME
/data/wordpress/$fastcgi_script_name;

                include fastcgi_params;

        }

}

[root@localhost
conf.d]# scp wdps.conf 172.18.10.11:/etc/nginx/conf.d/wdps.conf

[root@localhost
conf.d]# vim default.conf

刪除 default_server字段

11、              啟動nginx

[root@localhost
conf.d]# nginx

[root@localhost
conf.d]# ss –tnl

12、              啟動php-fpm服務

[root@localhost
~]# service php-fpm start

Starting
php-fpm:                                          [  OK  ]

13、              將后端共享的wordpress文件夾掛載

[root@localhost
data]# mount -t nfs 172.18.249.57:/data/wordpress /data/wordpress

14、              編寫lvs-dr腳本

[root@localhost
~]# vim dr.sh

#!/bin/bash

VIP=172.18.50.50

case
“$1” in

start)

        echo “配置 lvsRealServer 開始…”

        ifconfig lo:0 $VIP broadcast $VIP
netmask 255.255.255.255 up  ##
配置 VIP

        route add -host $VIP dev lo:0  ## 添加主機路由

        ## 限制響應和通告級別

        echo “1” >
/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo “1” >
/proc/sys/net/ipv4/conf/all/arp_ignore

        echo “2” >
/proc/sys/net/ipv4/conf/lo/arp_announce

        echo “2” >
/proc/sys/net/ipv4/conf/all/arp_announce

        ;;

stop)

        echo “正在關閉 lvsRealserver”

        ifconfiglo:0down

        echo “0” >
/proc/sys/net/ipv4/conf/lo/arp_ignore

        echo “0” >
/proc/sys/net/ipv4/conf/all/arp_ignore

        echo “0” >
/proc/sys/net/ipv4/conf/lo/arp_announce

        echo “0” >
/proc/sys/net/ipv4/conf/all/arp_announce

        ;;

*)

        echo “用法:$0{start|stop}”

        exit 1

esac

[root@localhost
~]# bash dr.sh start

配置 lvsRealServer 開始

[root@localhost
~]# scp dr.sh 172.18.10.11:/root/

[root@localhost
~]# ip a

1:
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd
00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet 172.18.50.50/32 brd 172.18.50.50 scope
global lo:0

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2:
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000

    link/ether 00:0c:29:07:27:ff brd
ff:ff:ff:ff:ff:ff

    inet 172.18.10.10/16 brd 172.18.255.255
scope global eth1

    inet6 fe80::20c:29ff:fe07:27ff/64 scope
link

       valid_lft forever preferred_lft forever

四、配置LVS-server

1、 安裝ipvsadm

[root@localhost
~]# yum install ipvsadm

2、 添加網卡別名,并查看

[root@localhost
~]# ip addr add 172.18.50.50/32 dev eth1

[root@localhost
~]# ip a

1:
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd
00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2:
eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000

    link/ether 00:0c:29:23:f3:8d brd
ff:ff:ff:ff:ff:ff

    inet 172.18.200.100/16 brd 172.18.255.255
scope global eth1

    inet 172.18.50.50/16 scope global secondary
eth1

    inet6 fe80::20c:29ff:fe23:f38d/64 scope
link

       valid_lft forever preferred_lft forever

3、 配置負載均衡

[root@localhost
~]# ipvsadm -A -t 172.18.50.50:80 -s rr ##
新增集群服務,使用rr輪巡模式

4、為集群添加real-server

[root@localhost
~]# ipvsadm -a -t 172.18.50.50:80 -r 172.18.10.10:80 -g

[root@localhost
~]# ipvsadm -a -t 172.18.50.50:80 -r 172.18.10.11:80 –g

5、查看集群規則

[root@localhost
~]# ipvsadm -Ln

IP
Virtual Server version 1.2.1 (size=4096)

Prot
LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.18.50.50:80 rr

  -> 172.18.10.10:80              Route   1     
0          0        

  -> 172.18.10.11:80              Route   1     
0          0 

 

 

打開瀏覽器,輸出172.18.50.50

成功訪問

lvs負載集群實驗(實現wordpress)lvs負載集群實驗(實現wordpress)lvs負載集群實驗(實現wordpress)lvs負載集群實驗(實現wordpress)

原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/75156

(0)
oranixoranix
上一篇 2017-05-09
下一篇 2017-05-11

相關推薦

  • N25-第二周博客作業

    1. Linux上的文件管理類命令都有那些,其常用的使用方法及其相關示例演示. 文件管理工具有cp, mv, rm cp命令: 復制文件或文件夾 語法: cp [OPTION]… [-T] SOURCE DEST 單源復制cp [OPTION]… SOURCE… DIRECTORY 多源復制 常用選項:  &nb…

    Linux干貨 2016-12-10
  • ?rsyslog

    rsyslog 概述 rsyslog支持的facility與priority facility:設施、信道: priority:級別 rsyslog程序 配置文件 配置日志記錄級別和路徑 配置日志記錄在遠程rsyslog server rsyslog server端 rsyslog client端 測試遠程服務器是否記錄日志 rsyslog記錄在MySQL中…

    Linux干貨 2016-10-16
  • httpd2.4 應用

    練習:  (1)基于主機名實現三個虛擬主機     (2) 每虛擬主機使用獨立的訪問日志和錯誤日志 (3) 第三個虛擬主機的/admin要進行用戶訪問認證  (4) 在第二個虛擬主機上提供/status; (5) 在第三個虛擬主機提供路徑別名/bbs,訪問其它文件系統路徑; (6) 嘗試使用混合類型…

    Linux干貨 2016-10-09
  • 8-1作業

    1、創建testuser uid 1234,主組:bin,輔助組:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp …

    Linux干貨 2016-08-03
  • linux掛載的基本使用

    掛載   掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區(已有文件系統)掛載到一個已存在的目錄上, 然后通過訪問這個目錄來訪問存儲設備。 掛載條件 1、掛載點必須是一個目錄。 2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內容將隱藏不可用。對于其他…

    Linux干貨 2016-09-07
  • Ansible安裝及簡單使用

    簡介: ansible是新出現的自動化運維工具,基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包…

    Linux干貨 2016-08-07
欧美性久久久久