
# 开始使用
 #### 安全组规则修改（可选）
安全组实际是网络流量访问策略，包括网络流量入方向规则和出方向规则，通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。
如果您的实例关联的安全组策略无法满足使用需求，比如需要添加、修改、删除某个TCP端口，请参考以下内容进行修改。
- 添加安全组规则：根据业务使用需求需要开放某个TCP端口，请参考**[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)**添加入方向规则，打开指定的TCP端口。
- 修改安全组规则：安全组规则设置不当会造成严重的安全隐患。您可以参考**[修改安全组规则](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0005.html)**，来修改安全组中不合理的规则，保证云服务器等实例的网络安全。
- 删除安全组规则：当安全组规则入方向、出方向源地址/目的地址有变化时，或者不需要开放某个端口时，您可以参考**[删除安全组规则](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0006.html)**进行安全组规则删除。
 
#### 访问服务端
1. 访问[Flexus云服务器X实例控制台](https://console.huaweicloud.com/hecsx/?agencyId=dfe412d1047e49288c7dd7f1e0dd315e&region=cn-north-4&locale=zh-cn#/ecs/manager/xList)，打开浏览器，输入[3.2快速部署步骤3](https://support.huaweicloud.com/mscipa-ctf/mscipa_05.html#mscipa_05__li17461516124012)创建资源的EIP地址，验证目的端Web是否正常，如下图所示。
   
   图1web1   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002128362070.png)
   图2web2   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002128203910.png)
   
   
#### 动态添加路由
1. **动态添加路由（keepalived）：** 源端通过公网访问目的端时，对应的业务需要使用自己的源端公网IP作为出口IP，因此需要配置虚拟IP的转发路由。
   
   由于虚拟IP地址会进行漂移，并且在未绑定虚拟IP地址的服务器上不能添加虚拟IP对应的路由规则，所以当虚拟IP漂移到主备云服务器中的一台时，需要为**主备服务器**动态添加路由。
   请登录源端（上海一）的主备服务器，执行步骤1-步骤2的操作。
   ```
   创建添加路由脚本
   命令：vim /etc/keepalived/addRoute.sh
   ```
   替换以下字段的值：
   destination1：web1服务EIP1
   destination2：web2服务EIP2
   destinationVip1：虚拟IP1
   destinationVip2：虚拟IP2
   添加如下内容
   ```
   #!/bin/bash
   # 要检查的路由目的地
   destination1="1.94.xx.22"
   destination2="113.44.xx.99"
   destinationVip1="172.16.0.203"
   destinationVip2="172.16.0.47"
   # 使用ip route show查找路由，通过grep检查输出
   if  ip route show | grep -q "$destination1" ; then
       echo "路由到 $destination1 存在。"
   else
       echo "路由到 $destination1 不存在。"
       ip route add $destination1 via 172.16.0.1 dev eth0 src $destinationVip1
   fi
   if  ip route show | grep -q "$destination2" ; then
       echo "路由到 $destination2 存在。"
   else
       echo "路由到 $destination2 不存在。"
      ip route add $destination2 via 172.16.0.1 dev eth0 src $destinationVip2
   fi
   ```
   为路由脚本添加可执行权限
   ```
   命令：chmod +x /etc/keepalived/addRoute.sh
   ```
   
   
2. **添加路由脚本：** 在Nginx监控脚本中加入添加路由脚本，替换原有内容。
   
   ```
   vim /etc/keepalived/chk_nginx.sh
   ```
   加入添加以下路由执行脚本
   ```
   #!/bin/bash
   sh /etc/keepalived/addRoute.sh
   counter=$(ps -C nginx --no-heading|wc -l)
   if [ "${counter}" = "0"  ]; then
        systemctl start nginx.service
        sleep 2
        counter=$(ps -C nginx  --no-heading|wc -l)
        if [ "${counter}" =  "0" ]; then
             systemctl stop keepalived.service
        fi
   fi
   ```
   
   
3. 在主服务器上可以查看已配置的路由信息 
   ```
   命令：ip route
   ```
   
   
 
#### 配置转发规则
1. 在源端（上海一）的主备服务器上分别配置Nginx的转发规则，执行以下命令，创建转发配置文件，添加如下内容。 
   ```
   命令：vim /etc/nginx/conf.d/web-src.conf
   ```
   修改替换以下内容
   server：web服务绑定的两个EIP
   server_name：虚拟IP绑定的两个EIP
   ```
   upstream web1 {
   server 1.94.xx.22:80;
   }
   upstream web2 {
   server 113.44.xx.99:80;
   }
   server {
   listen 80;
   server_name 1.94.xxx.236;
   access_log /var/log/nginx/web1.access.log main;
   error_log /var/log/nginx/web1.error.log crit;
   location / {
   proxy_pass http://web1;
   proxy_set_header Host $http_host;
   }
   }
   server {
   listen 80;
   server_name 115.120.xxx.252;
   access_log /var/log/nginx/web2.access.log main;
   error_log /var/log/nginx/web3.error.log crit;
   location / {
   proxy_pass http://web2;
   proxy_set_header Host $http_host;
   }
   }
   ```
   
   
2. 执行以下命令热加载生效Nginx配置 
   ```
   命令：nginx -s reload
   ```
   
   
   
 
#### 验证不同业务IP访问转发
1. 打开浏览器，输入绑定在虚拟IP1上的EIP1（1.94.xxx.236），验证是否转发到目的端web1上，网页如下图所示，表示转发成功。 
   图3web1   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002129443280.png)
   
   
2. 打开浏览器，输入绑定在虚拟IP2上的EIP2（115.120.xxx.252），验证是否转发到目的端web2上。网页如下图所示，表示转发成功。 
   图4web2   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002165037473.png)
   
   
 
#### 验证主备服务器的自动切换功能
1. 接[验证主备切换](https://support.huaweicloud.com/mscipa-ctf/mscipa_04.html#mscipa_04__li878710051814)所示，主服务器为Flexus-X-HA2，远程登录Flexus-X-HA2，并执行以下命令，查看虚拟IP是否已绑定到Flexus-X-HA2。回显类似如下信息，可以看到虚拟IP1（172.16.0.203）和虚拟IP2（172.16.0.47）已绑定至eth0网卡上，再次确认Flexus-X-HA2为主服务器。
   
   ```
   命令：ip a
   ```
   图5网卡信息   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002171086341.png)
   
   
2. 执行以下命令，停止主服务器的Keepalived服务或者重启主ECS二选一，本示例中主服务器为Flexus-X-HA2。 
   ```
   停止Keepalived服务
   命令：systemctl stop keepalived.service
   重启主ECS
   reboot
   ```
   
   
3. 打开浏览器，输入绑定在虚拟IP1上的EIP1（1.94.xxx.236）、输入绑定在虚拟IP2上的EIP2（115.120.xxx.252），验证主服务器挂掉之后能否正常访问网页。 
   网页如下图所示，表示网页访问正常。
   图6web1   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002171362865.png)
   图7web2   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002171364733.png)
   
   
4. 执行以下命令，验证主ECS是否切换成Flexus-X-HA1。远程登录Flexus-X-HA1，并执行以下命令，查看虚拟IP是否已绑定到Flexus-X-HA1的eth0网卡上。 
   回显类似如下信息，可以看到虚拟IP1（172.16.0.203）和虚拟IP2（172.16.0.47）已绑定至eth0网卡上，此时确认Flexus-X-HA1为主ECS。
   ```
   命令：ip addr show
   ```
   图8网卡信息   
   ![](https://support.huaweicloud.com/mscipa-ctf/zh-cn_image_0000002135892962.png)
   
   
 
