項目要求:
(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
成功訪問
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/75156