实战-记日访问量200wPV站点部署

安装步骤;

  1.在Real server 上安装apache及php,并装载wordpress,为upload目录(client上传内容处)使用NFS

  2.部署Mariadb server,及导出 NFS目录服务  (同时充当DNS服务器及CA服务器,实现域名解析和证书颁发)

  3.部署LVS cluster ,分别使用RR及SH调度算法实现 (分别测试http及https服务)

  4.使用iptables为client报文打标签,实现http及Telnet服务同时负载;

  5.使用ldirectord 实现RS状态监测及下线

  6.实现持续访问状态下的wordpress版本迭代更新;

  

地址规划;

  LVS :VIP=192.168.10.184    DIP=192.168.20.242

  RS1: 192.168.20.243

  RS2:192.168.20.244

  Mariadb and NFS :192.168.20.245

  域名: www.ilinux.com

配置RS(RS1,与RS2配置相同,此处只演示RS1),及CA签署,DNS配置)

  RS配置   192.168.20.243

  

 1 1. 安装apache及相关必须组件 (此处使用centos 自带yum源)
 2     yum install httpd php php-mysql mod_ssl -y 
 3 
 4 2. 修改httpd.conf配置文件部分内容
 5     cd /etc/httpd
 6     vim conf/httpd.conf
 7     ServerName www.ilinux.com
 8     DocumentRoot "/var/www/html"
 9 
10 3.修改ssl.conf配置文件内容
11     vim conf.d/ssl.conf
12     DocumentRoot "/var/www/html"
13     ServerName www.ilinux.com:443
14     SSLCertificateFile /etc/pki/CA/httpd.crt         (指定证书路径)
15     SSLCertificateKeyFile /etc/pki/CA/private/httpd.key   (指定证书私钥路径)
16 
17 4. 生成私钥文件及请求证书
18     cd /etc/pki/CA/
19     (umask 077;openssl genrsa -out private/httpd.key 4096)
20     openssh req -new -key private/httpd.key -out httpd.csr -days 365
21     {
22     Country Name (2 letter code) [XX]:CN
23     State or Province Name (full name) []:Bejing
24     Locality Name (eg, city) [Default City]:Bejing
25     Organization Name (eg, company) [Default Company Ltd]:MageEdu
26     Organizational Unit Name (eg, section) []:devops
27     Common Name (eg, your name or your server's hostname) []:www.ilinux.com  (servername一定要指向公司被访问的域名)
28     Email Address []:
29 
30     Please enter the following 'extra' attributes
31     to be sent with your certificate request
32     A challenge password []:
33     An optional company name []:
34     }
35     
36 5. 将私钥文件发送到CA服务器签署
37     scp httpd.csr root@192.168.20.245:/etc/pki/CA/
38 6. 生成index.html 索引页面(用于测试) 39 vim /var/www/html/index.html 40 <h1> This is R1,192.168.20.243 </H1> 41 systemctl start httpd

  

  CA及DNS配置   192.168.20.245

  

 1 1. CA服务器生成自签证书
 2     cd /etc/pki/CA/
 3     (umask 077;openssl genrsa -out private/cache.key 4096)
 4     openssl req -new -x509 -key private/cache.key -out cacert.pem -days 365
 5     {
 6     Country Name (2 letter code) [XX]:CN
 7     State or Province Name (full name) []:Bejing
 8     Locality Name (eg, city) [Default City]:Bejing
 9     Organization Name (eg, company) [Default Company Ltd]:MageEdu
10     Organizational Unit Name (eg, section) []:devops
11     Common Name (eg, your name or your server's hostname) []:MageEdu.com
12     Email Address []:
13     }
14     touch index.txt
15     echo 01 > serial   
16     
17 2. CA服务器签署RS的证书请求
18      openssl ca -in httpd.csr -out httpd.crt -days 365
19      {
20     Certificate Details:
21         Serial Number: 1 (0x1)
22         Validity
23             Not Before: Mar 10 02:41:27 2020 GMT
24             Not After : Mar 10 02:41:27 2021 GMT
25         Subject:
26             countryName               = CN
27             stateOrProvinceName       = Bejing
28             organizationName          = MageEdu
29             organizationalUnitName    = devops
30             commonName                = www.ilinux.com
31         X509v3 extensions:
32             X509v3 Basic Constraints: 
33                 CA:FALSE
34             Netscape Comment: 
35                 OpenSSL Generated Certificate
36             X509v3 Subject Key Identifier: 
37                 F6:74:C5:8F:B6:15:3F:44:E7:B1:9D:CA:3C:E4:E7:64:65:6B:91:5E
38             X509v3 Authority Key Identifier: 
39                 keyid:C5:9E:C7:2A:12:73:6D:02:06:39:42:28:44:7D:31:9F:4A:85:31:72
40 
41     Certificate is to be certified until Mar 10 02:41:27 2021 GMT (365 days)
42     Sign the certificate? [y/n]:y  
43 
44 
45     1 out of 1 certificate requests certified, commit? [y/n]y
46     Write out database with 1 new entries
47     Data Base Updated
48     }
49     
50 3.将签署好的证书发送到RS服务器
51     scp httpd.crt root@192.168.20.243:/etc/pki/CA/
52 
53 
54 
55 配置DNS服务器
56 1.安装DNS服务
57     yum install bind bind-utils
58 
59 2.修改主配置文件相关参数
60    vim /etc/named.conf
61     listen-on port 53 { 127.0.0.1; 192.168.20.245; };    (监听本地地址)
62     allow-query     { any; };      (允许所有请求)
63     dnssec-enable no;         (关闭DNS校验)
64     dnssec-validation no;      (关闭DNS校)
65 
66 3.添加主区域解析记录
67     vim /etc/named.rfc1912.conf
68     zone "ilinux.com" IN {
69         type master;
70         file "ilinux.com.zone";
71     };
72 
73 4. 添加区域解析库文件
74     vim /var/named/ilinux.com.zine
75     $TTL 3660
76 $ORIGIN ilinux.com.
77 @       IN      SOA     ns1     admin (
78                 10      (初始序列号,之后修改需要+1,便于从DNS服务器同步)
79                 2H     (从服务器刷新时间间隔)
80                 10M    (重传时间间隔)
81                 1W      (过期时间间隔)
82                 1D        (client缓存时间)
83                 )
84 @       IN      NS      ns1.ilinux.com.
85 ns1     IN      A       192.168.20.245
86 www     IN      A       192.168.20.242  (主解析记录指向 LVS服务器)
87 
88 5. DNS服务器域名配置
89     echo "nameserver 192.168.20.245" > /etc/resolv.conf
90     systemctl restart network
91     systemctl start named
92     
93     

    

     RS2 配置:  192.168.20.244

      同RS1相同,无需生成证书,将RS1证书及私钥文件拷贝到RS1目录下即可

 测试  :   http://192.168.20.243/244

         https://192.168.20.243/244

     

  Mariadb and NFS configuretiong    192.168.20.245

  

 1 1. 服务安装
 2     yum install mariadb-server
 3     yum install nfs-utils
 4 
 5 2. Mariadb 加固及数据库和权限添加
 6     systemctl start mariadb
 7     mysql_secure_installation    (对Mariadb进行安全加固,包括设置root密码及删除匿名用户和多余数据库等)
 8     vim /etc/my.cnf
 9     skip_name_resolve=ON      (跳过名称解析)
10     innodb_file_per_table=ON
11     wq
12     mysql -uroot -p   (键入第二步添加的root密码
13     create databases wordpress;      (创建wordpress数据库)
14     grant all on wordpress.* to 'wordpress'@'192.168.20.%' identified by 'wordpress';    (授权用户wordpress管理数据库wordpress)
15     flush privileges;     (权限刷新)
16     exit
17 
18 3. NFS 导出
19     useradd -r -u 48 apache     (创建apache用户,该设备上为安装httpd)
20     mkdir /date/NFS      (创建用于NFS导出的目录)
21     chown apache.apache /date/NFS    (修改目录权限)
22     vim /etc/exports 
23     /date/NFS     192.168.20.0/24(rw,root_squash)     (添加导出目录及访问权限)
24     wq
25     exportfs -rav      (导出所有目录)
26     systemctl start nfs     (启动NFS)
27 
28     

   

  RS主机配置wordpress 192.168.20.243   (1,2相同)

  

1.安装wordpress
    tar xf wordpress-4.9.4-zh_CN.tar.gz
    cp -R wordpress/ /var/www/html/

2.wordpress配置
    cd /var/www/html/wordpress
    cp wp-config-sample.php wp-config.php 
    vim wp-config.php
    define('DB_NAME', 'wordpress');

    /** MySQL数据库用户名 */
    define('DB_USER', 'wordpress');

    /** MySQL数据库密码 */
    define('DB_PASSWORD', 'wordpress');

    /** MySQL主机 */
    define('192.168.20.245');

    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8');

    /** 数据库整理类型。如不确定请勿更改 */
    define('DB_COLLATE', '');
    wq
    
    
3. 使用软链接方式映射URL
    ln -sv wordpress wdp 

4. 为upload目录使用NFS,用于同步client上传的内容
    cd wordpress/wp-content
    mount -t nfs 192.168.20.245:/date/NFS upload    (挂载NFS文件系统到 upload 目录)
    

测试:

  http://www.ilinux.com/wdp

  

  

  LVS  配置  192.168.20.242   192.168.20.243   (RS配置与RS1相同)

  192.168.20.242配置;

  

 1 1. 配置DIP,及开启ipvsadm 
 2     yum install ipvsadmin    
 3     ifconfig ens192:0 192.168.20.241 netmask 255.255.255.255 broadcast 192.168.20.241 up  (添加VIP地址)
 4     ipvsadm -A -t 192.168.20.241:443 -s rr     (添加调度策略 rr ,并监听地址及443端口
 5     ipvsadm -a -t 192.168.20.241:443 -r 192.168.20.243 -g -w 1    (添加r1为Real server)
 6     ipvsadm -a -t 192.168.20.241:443 -r 192.168.20.244 -g -w 1     (添加r2为Real server)
 7     ipvsadm -A -t 192.168.20.241:80 -s rr        (添加调度策略及监听80端口)
 8     ipvsadm -a -t 192.168.20.241:80 -r 192.168.20.243 -g -w 1
 9     ipvsadm -a -t 192.168.20.241:80 -r 192.168.20.244 -g -w 1
10     ipvsadm -ln     (查看ipvsadm配置)
11     

  192.168.20.243 配置:

  

1 1.配置关闭arp广播及ARP响应,并开启lo接口
2 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore     (开启仅网卡物理地址响应arp,本机其它地址不响应arp)
3 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
4 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce    (不发送arp报文到广播域中)
5 echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
6 ifconfig lo:0 192.168.20.241 netmask 255.255.255.255 broadcast 192.168.20.241 up    (添加 lo 接口并配置 vip 地址)
7 route add -host 192.168.20.241 dev lo:0     (添加本地路由到lo,使响应报文经过lo,并将源地址设为lo地址)

  

  在 192.168.20.244上作相同配置,开启 lo接口并配置VIP地址

测试: http://www.ilinux.com/wdp

      https://www.ilinux.com/wdp

 

  LVS 配置基于防火墙标签方式作负载

  

 iptables -t mangle -A PREROUTING -d 192.168.20.241 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 3    (对目标地址为192.168.20.241,目标端口为80,443的报文打上标签 3
ipvsadm -A -f 3 -s sh      (基于防火墙标记的标签 3  做匹配,使用sh调度模式)
ipvsadm -a -f 3 -r 192.168.20.243 -g      (添加RS1 ,-g 为dr 转发方式)
ipvsadm -a -f 3 -r 192.168.20.244 -g     (添加rs2)
ipvsadm -ln  

   会话连接保持:在一定时间内,哪怕使用SH调度方式,也可以实现对服务的连接保持  ipvsadm -p number time

  192.168.20.242    配置基于0端口(接受到的任何服务请求都转到后端服务器)的负载集群;

  

ipvsadm -C    (清空原有规则)
ipvsadm -A -t 192.168.20.241:0 -s rr -p 360    (配置0端口,调度模式为rr(轮询),会话保持时间360s,在指定时间内该用户的请求都会被转发至同一台后端服务器)
ipvsadm -a -t 192.168.20.241:0 -r 192.168.20.243 -g     (添加后端服务器R1)
ipvsadm -a -t 192.168.20.241:0 -r 192.168.20.244 -g    (添加后端服务器R2)

  测试: 在两台后端服务器上安装  telnet-server   systemctl start telnet.socket

           telnet 192.168.20.241    (测试结果为远程请求被转发到后端服务器上,由RS响应)

      基于0端口下任何服务都会被转到后端服务器

    ldirectord  鉴于使用太少,有机会再作演示。

猜你喜欢

转载自www.cnblogs.com/qingfengguoke/p/12454099.html
今日推荐