LVS-NAT負載均衡兩個php應用(wordpress,discuzx)( Blog 19)

結果:需要會話保持,需要共享存儲;

LVS-NAT負載均衡nginx:
Director:
eno16777736:172.16.0.6 (橋接)
eno33554984:192.168.10.254 (VMnet1)
RS1: eno16777736:192.168.10.1 (VMnet1)(網關指向Director的VMnet1)
RS2: eno16777736:192.168.10.2 (VMnet1)(網關指向Director的VMnet1)

(1) 是否需要會話保持:
思路:在RS1和RS2分別布署兩個獨立的LAP,使用相同的MariaDB;DR以rr算法調度,訪問wordpress和discuzx;
進行發布文章和上傳圖片;

將Director作為時間服務器:
/etc/chrony.conf
allow 192.168/24
~]# systemctl start chronyd.service
~]# ss -unl (:123 :323)
~]# iptables -F
~]# setenforce 0
同步時間:
~]# ntpdate 172.16.0.6
~]# date
為了方便識別:
~]# hostnamectl set-hostname rs2.ilinux.io
~]# hostnamectl set-hostname rs1.ilinux.io
RS1,RS2提供httpd, php, php-mysql, mariadb-server(僅安裝在RS2)
注意:RS1,RS2沒有聯網,可以讓DR代為請求服務器:
1) 打開dr的轉發功能:# echo 1 > /proc/sys/net/ipv4/ip_forward
2) SNAT模式:# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT –to-source 172.16.0.6
安裝程序:~]# yum -y install httpd php php-mysql
~]# rpm -q httpd php php-mysql
安裝后:
1) 關閉轉發功能: # echo 0 > /proc/sys/net/ipv4/ip_forward
2) 清空nat表:# iptables -t nat -F

配置maridb-server:
~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
log_bin=mysql-bin
~]# systemctl start mariadb.service
~]# ss -tnl ( *:3306)
~]# mysql_secure_installation (安全初始化)
~]# mysql -uroot -hlocalhost -pmagedu
授權兩個賬號以連接wordpress,discuzx
MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> CREATE DATABASE discuz;
MariaDB [(none)]> GRANT ALL ON wordpress.* TO ‘wpuser’@’192.168.10.%’ IDENTIFIED BY ‘wppass’;
MariaDB [(none)]> GRANT ALL ON discuz.* TO ‘dzuser’@’192.168.10.%’ IDENTIFIED BY ‘dzpass’;
MariaDB [(none)]> FLUSH PRIVILEGES;
~]# mysql -uwpuser -h192.168.10.2 -pwppass
~]# mysql -udzuser -h192.168.10.2 -pdzpass

測試RS1, RS2的服務是否正常:
1)測試Httpd服務是否正常:
~]# systemctl start httpd.service
~]# ss -tnl (:::80)
~]# vim /var/www/html/test1.html
<h1>RS1, 192.168.10.1</h1>
# curl http://192.168.10.1/test1.html
<h1>RS1, 192.168.10.1</h1>

RS2: 同理!
# curl http://192.168.10.2/test1.html
<h1>RS2, 192.168.10.2</h1>
2)測試httpd運行php動態資源環境;
~]# vim /var/www/html/phpinfo.php
<html>
<title>Test Page</title>
<body>
<h1>RS1.magedu.com</h1>
<?php
phpinfo();
?>
</body>
</html>

RS2:同上:
測試時,在172.16.0.67上添加一塊網卡(VMnet1: 192.168.10.99),并執行以下命令;
sysctl -w net.ipv4.ip_forward=1
route add -net 192.168.10.0/24 dev eno33554985

測試:http://192.168.10.1/phpinfo.php
http://192.168.10.2/phpinfo.php
3)測試php連接maridb-server;
~]# vim /var/www/html/php-mysql.php
<?php
$conn = mysql_connect(‘192.168.10.2′,’wpuser’,’wppass’);
if ($conn)
echo “OK”;
else
echo “NO”;
?>
RS2:同上:
測試:http://192.168.10.2/php-mysql.php
http://192.168.10.1/php-mysql.php

~]# vim /var/www/html/php-mysql2.php
<?php
$conn = mysql_connect(‘192.168.10.2′,’dzuser’,’dzpass’);
if ($conn)
echo “OK”;
else
echo “NO”;
?>
RS2:同上:
測試:http://192.168.10.2/php-mysql2.php
http://192.168.10.1/php-mysql2.php

在Director上開啟集群服務:
~]# yum -y install ipvsadm
配置web集群
~]# ipvsadm -A -t 172.16.0.6:80 -s rr
~]# ipvsadm -a -t 172.16.0.6:80 -r 192.168.10.1 -m
~]# ipvsadm -a -t 172.16.0.6:80 -r 192.168.10.2 -m
~]# ipvsadm -Ln
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.0.6:80 rr
-> 192.168.10.1:80 Masq 1 0 0
-> 192.168.10.2:80 Masq 1 0 0
測試集群是否正常:
http://172.16.0.6/ 沒有回應!
抓包分析:
~]# tcpdump -i eno16777736 -nn tcp port 80
14:54:46.693421 IP 172.16.0.67.50144 > 172.16.0.6.80
14:54:47.701470 IP 172.16.0.67.50144 > 172.16.0.6.80
只有單向:–>(PREROUTING –INPUT –> FORWARD –> POSTROUTING)–>內網

打開轉發功能:
~]# sysctl -w net.ipv4.ip_forward=1

測試正常:http://172.16.0.6/test1.html

布署wordpress測試:發文章,上傳圖片:
基于虛擬主機布署wordpresss 和 discuzz
~]# vim /etc/httpd/conf.d/ilinux.conf
<VirtualHost *:80>
ServerName www.ilinux.io
DocumentRoot “/data/web/ilinux”
<Directory “/data/web/ilinux”>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
CustomLog logs/ilinux_access_log combined
ErrorLog logs/ilinux_error_log
</VirtualHost>
# cp /etc/httpd/conf.d/ilinux.conf /etc/httpd/conf.d/iunix.conf
# sed -i ‘s,linux,unix,g’ /etc/httpd/conf.d/iunix.conf
# mkdir -pv /data/web/{ilinux,iunix}
# httpd -t
# systemctl restart httpd.service
RS2同上:

布署wordpress和discuzz
在172.16.0.67上安裝samba服務:將wordpress和discuzz導入至samba共享中,而后復制至RS主機;
~]# yum -y install samba
~]# vim /etc/samba/smb.conf
[files]
comment=share files
path=/mydata
write list=centos
browseable=yes
~]# testparm
~]# systemctl start smb.service nmb.service
[root@localhost ~]# netstat -tunlp | grep -E ‘(s|n)mb’
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 12658/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 12658/smbd
udp 0 0 192.168.10.99:137 0.0.0.0:* 12654/nmbd
udp 0 0 172.16.0.67:138 0.0.0.0:* 12654/nmbd
添加centos用戶:~]# useradd centos; smbpasswd -a centos
在windows中訪問:\\172.16.0.67
~]# install -d -o centos -g centos /mydata

RS中下載文件:
# smbclient -L 192.168.10.99 -U centos
# smbclient //192.168.10.99/files -U centos
[root@rs1 ilinux]# tar xf wordpress-4.9.1-zh_CN.tar.gz
[root@rs1 ilinux]# ln -sv wordpress wp
[root@rs1 ilinux]# cp wp/wp-config-sample.php wp/wp-config.php
[root@rs1 ilinux]# vim wp/wp-config.php
/** WordPress數據庫的名稱 */
define(‘DB_NAME’, ‘wordpress’);

/** MySQL數據庫用戶名 */
define(‘DB_USER’, ‘wpuser’);

/** MySQL數據庫密碼 */
define(‘DB_PASSWORD’, ‘wppass’);

/** MySQL主機 */
define(‘DB_HOST’, ‘192.168.10.2’);
# setfacl -R -m u:apache:rwx ilinux/wordpress

# unzip Discuz_X3.2_SC_UTF8.zip
# setfacl -R -m u:apache:rwx iunix/upload/

# scp -r /data/web/* root@192.168.10.2:/data/web/

在網頁中發表文章和上傳圖片:
1)測試wordpress:
在windows主機的瀏覽器中搜索:http://www.ilinux.io/wp/
發表文章后,只要刷新圖片消失了;在刷新圖片出現;

2)測試discuzz
在windows主機的瀏覽器中搜索:http://www.iunix.io/upload/
不能登陸

修改集群,再次測試:
~]# ipvsadm -E -t 172.16.0.6:80 -s sh
測試wordpress圖片全部消失;
discuzz登陸不上

現在上傳圖片再也不會丟失了;

獲取正在使用主機,讓其停機;
~]# ipvsadm -Ln -c
TCP 01:20 TIME_WAIT 172.16.0.178:58402 172.16.0.6:80 192.168.10.2:80
TCP 01:18 TIME_WAIT 172.16.0.178:58383 172.16.0.6:80 192.168.10.2:80
~]# ipvsadm -d -t 172.16.0.6:80 -r 192.168.10.2

O(∩_∩)O哈哈~,discuzz可以登陸了。wordpress圖片恢復;
會話不能驗證:Say Sorry..

(2) 是否需要共享存儲;
在RS1上共享出/data/web目錄,讓RS2掛載;
光盤掛載:安裝nfs-utils程序
~]# mount -r /dev/cdrom /media/cdrom/

導出目錄:
# vim /etc/exports
/data/web 192.168.10.0/24(rw)
查看10.2 httpd進程用戶的id: 48
自己apache用戶:48
~]# setfacl -R -m u:apache:rwx /data/web
~]# exportfs -arv
~]# systemctl start nfs.service
~]# ss -tnl ( *:2049 )

掛載目錄:
# showmount -e 192.168.10.1
# mount -t nfs 192.168.10.1:/data/web /data/web
# mount

重新生成ipvs規:
[root@localhost ~]# ipvsadm -C
[root@localhost ~]# ipvsadm -A -t 172.16.0.6:80 -s rr
[root@localhost ~]# ipvsadm -a -t 172.16.0.6:80 -r 192.168.10.1 -m
[root@localhost ~]# ipvsadm -a -t 172.16.0.6:80 -r 192.168.10.2 -m
[root@localhost ~]# ipvsadm -Ln

訪問:
此時刷新內容是一致的;
~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.16.0.6:80 rr
-> 192.168.10.1:80 Masq 1 0 105
-> 192.168.10.2:80 Masq 1 0 97

基于RR算法輪詢調度,并沒有基于SH算法來源地址哈希:將所有來自同一個IP的發到同一個主機;
驗證不了,但還是需要SH算法和共享存儲;

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90450

(1)
逆神陽逆神陽
上一篇 2017-12-20 02:52
下一篇 2017-12-20 03:07

相關推薦

  • 3、常用命令介紹

    http://note.youdao.com/yws/public/redirect/share?id=4840e26ee1d2b2c928b6c26e2ba14661&type=false

    Linux干貨 2016-08-08
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • 馬哥教育網絡19期+第十五周課程練習

    1、總結sed和awk的詳細用法;   a).sed命令 sed可以實現grep的大部分功能,而且還可以查找替換 [root@localhost ~]# sed '10'p -n 1.txt [root@localhost ~]# sed &#039…

    Linux干貨 2016-08-22
  • 馬哥linux0803作業內容

    1. 創建sysadmins組 將用戶user1,user2,user3加入sysadmins組中 將user3設置為sysadmins的管理員 用user3登錄,將user2從組中移除 設置sysadmins的密碼centos 設置user1 在創建新文件時,文件的所屬組為sysadmins 刪除user1…3 刪除sysadmins 2、三種權限rwx對…

    Linux干貨 2016-08-08
  • centos進程管理

    一 、進程的概念和分類1.進程的概念      Linux是一個多用戶多任務的操作系統。多用戶是指多個用戶可以在同一時間使用同一個linux系統;多任務是指在Linux下可以同時執行多個任務,更詳細的說,linux采用了分時管理的方法,所有的任務都放在一個隊列中,操作系統根據每個任務的優先級為每個任務分配合適…

    Linux干貨 2016-09-19
  • 做有高薪有逼格的運維工程師,不會Linux是沒有前途的!

    作為互聯網的幕后英雄,運維工程師長期隱匿在大眾認知范圍之外,關于運維的討論仍舊是一片無人涉足的荒漠。在某知名行業研究調查結果中,非互聯網從業者對于運維相關問題的回復有三個高頻詞匯是:不知道、沒聽過、網管。當調查人員告訴他們科幻電影中展示黑客高超技巧時的命令行界面正是大多數運維工程師每日工作環境時,他們發出極其一致的驚嘆。 相對于普羅大眾的一無所知,技術圈對運…

    2017-09-08
欧美性久久久久