LVS/DR+ssl+mysql實現

 一、LVS/DR簡單介紹

企業常用模型

DR(Direct Routing)直接路由模式。LB收到請求包後,將請求包中目標MAC地址轉換爲某個選定RSMAC地址後將包轉發出去,RS收到請求包後 ,可直接將應答內容傳給用戶。此時要求LB和所有RS都必須在一個物理段內,LBRS羣共享一個虛擬IP

lvs-dr模型特徵 (常用)
1、集羣節點必須在一個物理網絡上(mac)

2rip可以使用公網地址

3director處理入站請求,
4realserver網關不指向director
5、不支持端口映射
6、大多數操作系統支持realservers
7dr dirctor nat director性能優越
 
二、實驗說明 實驗拓樸圖

 

 

172.16.23.10LVS與互聯網通信的物理地址,簡稱爲DIP

172.16.23.1LVS與內部真實服務器通信的地址,簡稱爲VIP

172.16.23.12172.16.23.12就是LVS通過一些調度算法,選擇服務器響應的真實服務器web地址,這兩個服務器上還有一個lo上網卡別名lo:0 172.16.23.1 即跟VIP地址一樣 webnginx+php

172.16.23.7 mysql服務器地址

本次實驗主要是通過LVS這個負載均衡通過一些調度算法,對web進行負載均衡,而且是可進行加密進行,即實現ssl,並且通過web1,web2分別安裝pam進行對mysql這臺服務器進行管理。都是橋接
三、實現過程
1、構建web1,web2這兩臺服務器,上一篇博客已經寫過,這裏只進行ssl說明。
Web1上先CA證書
cd /etc/pki/CA
vim ../tls/openssl.cnf  修改一些參數找到 [CA_default] dir 設置爲dir = /etc/pki/CA
(umask 077;openssl genrsa 1024>private/cakey.pem)
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
mkdir newcerts certs crl
touch index.txt
echo 01>serial

echo 01>crlnumber

2web1httpd證書
cd /etc/httpd/conf
mkdir ssl
cd ssl

(umask 077;openssl genrsa 1024 > httpd.key)

openssl req -new -key httpd.key -out httpd.csr
3、向CA即自已申請證書
openssl ca -in httpd.csr -out httpd.crt
ca進行簽發
4、修改配置文件即/etc/nginx/nginx.conf 肉容中下
   server {
        listen       443;
        server_name  www.server1.com;
 
        ssl                  on;
        ssl_certificate      /etc/httpd/ssl/httpd.crt;  /httpd證書
        ssl_certificate_key  /etc/httpd/ssl/httpd.key;  /證書私鑰
 

        ssl_session_timeout  5m;

 
        ssl_protocols  SSLv2 SSLv3 TLSv1;
           #ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM

      #  ssl_prefer_server_ciphers   on;     這兩項先不起用

 
        location / {
            root   /www;

            index index.php  index.html index.htm;   //添加index.php

        }  
        location ~ \.php$ {
            root           /www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            fastcgi_param  HTTPS on ;     /這裏要添加如下內容,啓用https

            include        fastcgi_params;
        }  
    }  
 
}
5、安裝mysql圖形管理工具

1 需要在網上下載phpMyAdmin-2.11.10-all-languages

Tar xf phpMyAdmin-2.11.10-all-languages –C /     //解壓到根目錄下

mv  phpMyAdmin-2.11.10  www       /www 即是本地網頁存放目錄

2  cd /www  添加配置文件

cp config.sample.inc.php config.inc.php

3   vim config.inc.php 修改以下參數

$cg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['host'] = '172.16.23.7';

     //mysql的主機ip地址
$cfg['blowfish_secret'] = '';修改爲$cfg['blowfish_secret'] = 'fsfsfsfs'; 
//這裏隨便寫些值,主要是cookier加密,不改無法登錄。
4)驗證訪問
輸入mysql服務器上邊的
用戶名:pam
及密碼:12345
登錄成功
Web2設置類似,這裏不再書寫!
6mysql服務器進行設置
進入mysql命令行,給web1,web2授權訪問數據庫
grant all privileges on  *.* to [email protected] identified by '12345';
grant all privileges on  *.* to [email protected] identified by '12345';
flush privileges;
7web1登錄pam時出現問題及解決方法

Cookies 必須啓用才能登入。

多次嘗試無法登錄,修改多次config.inc.php無結果。
最後上網查可能是時間有問題。
我就在不能登錄的那臺服務器看,時間錯了兩個月
Date 0414220812.33   //月日時分年秒
Hwclock –w     //指設置好的系統時間同步到硬件裏
進行嘗成功!
8LVS/DR設置
持久防火牆標記包持久性
實現將同一個服務的不同端口定向到同一個realserver

即客戶端請求發往80,及443端口都將由LVS通過算法定向到同一個realserver

ipvsadm -C
iptables -t mangle -L -n
 

iptables -t mangle -A PREROUTING  -i eth0 -p tcp -d 172.16.23.1  --dport 80 -j MARK --set-mark 20   [0-99整數]   //定義標記

iptables -t mangle -A PREROUTING  -i eth0 -p tcp -d 172.16.23.1  --dport 443 -j MARK --set-mark 20    [0-99]

 
iptables  定義集羣,及集羣服務列表

ipvsadm -A -f 20 -s rr  -p 1200         //DR持久連接

ipvsadm -a -f 20 -r 172.16.23.11 -g -w 3
ipvsadm -a -f 20 -r 172.16.23.12 -g -w 2
ipvsadm -Ln
9、 進行驗證
Xp客戶端瀏覽器輸入 http://172.16.23.1,出現如下內容。

 

成功!
mysql服務器上進行ab測試
LVS服務器上查看,ipvsadm –Lcn
至此整個過程完成!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章