83: 项目概述 、 跳板机、模板机的制作 、 企业云平台搭建Web集群 、 总结和答疑

Top

NSD PROJECT3 DAY01

  1. 案例1:ecs-proxy环境准备
  2. 案例2:部署NFS文件共享服务器
  3. 案例3:rsync+inotify实时同步
  4. 案例4:部署Redis服务器
  5. 案例5:部署Web服务器集群
  6. 案例6:实现Session共享
  7. 案例7:部署Jumpserver

1 案例1:ecs-proxy环境准备

1.1 问题

本案例要求了解今日项目所需主机列表信息,快速构建好一个Ansible平台,将项目所需软件上传云平台,要求如下:

  • 修改配置文件
  • 上传项目所需全部软件包

1.2 方案

准备如表-1所示的实验环境,配置主机名称、IP地址、YUM源。

表-1 主机列表

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备基础环境

1)修改/etc/hosts

hosts文件是Linux系统上负责IP地址与域名快速解析的文件

[root@ecs-proxy ~]# cat >> /etc/hosts <<EOF
192.168.1.11 nginx-0001
192.168.1.12 nginx-0002
192.168.1.13 nginx-0003
192.168.1.21 nfs
192.168.1.22 backup
192.168.1.31 redis-0001
EOF

2) 修改Ansible配置文件

ansible配置文件查找顺序

首先检测ANSIBLE_CONFIG变量定义的配置文件

其次检查当前目录下的./ansible.cfg文件

再次检查当前用户家目录下~/ansible.cfg文件

最后检查/etc/ansible/ansible.cfg文件

[root@ecs-proxy ~]# mkdir /root/ansible
[root@ecs-proxy ~]# cat >> /root/ansible/ansible.cfg <<EOF
[defaults]
inventory = /root/ansible/hosts #主机清单配置文件
host_key_checking = False #不校验密钥(第一次ssh时不提示yes/no)
EOF

3) 修改主机清单文件(清单文件名必须与主配置文件inventory定义的一致)。

[root@ecs-proxy ~]#cat >> /root/ansible/hosts <<EOF
[web]                #定义主机组(组名称任意)
192.168.1.1[1:3]        #定义组中的具体主机
[nfs]
192.168.1.21
[backup]
192.168.1.22
[redis]
192.168.1.31
EOF

4) 上传软件包

将项目需要用到的全部软件包拖拽至Xshell终端上传到/root目录下,并解压。

[root@ecs-proxy ~]# unzip /root/project3.zip

2 案例2:部署NFS文件共享服务器

2.1 问题

本案例要求要部署NFS文件共享服务器,并与backup主机实现数据实时同步,要求如下:

  • 购买华为弹性云服务器
  • 将新添加的磁盘进行分区
  • 制作成逻辑卷
  • 部署NFS文件共享服务器

2.2 方案

在中小型企业集群架构的工作场景中,NFS网络文件系统一般用来存储共享视频、图片、附件等静态资源文件,通常网站用户上传的文件都会放在NFS共享里。【注意:网站的代码程序不要放在NFS共享里,直接批量发布到Web节点提供访问比共享到NFS里访问效率更高。】

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:购买华为云服务器

1)打开华为云官网—>【控制台】—>【弹性云服务器】—>【购买弹性云服务器】

基础配置购买信息 如图-1,图-2所示。

按照如下信息购买华为云主机。

基础配置:通用型SSD 10G  2块
网络配置:手动分配IP地址 192.168.1.21
高级配置:云服务器名称 nfs
确认配置:1台

图-1

图-2

2)网络配置购买信息 如图-3所示。

图-3

3)高级配置购买信息,如图-4所示。

图-4

4)确认配置,如图-5所示。

图-5

步骤二:对新添加的两块磁盘分区

1)对/dev/vdb磁盘进行分区,全盘只分为一个1个分区。

[root@nfs ~]# lsblk       #列出所有可用设备信息      
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk 
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 10G 0 disk 
vdc 253:32 0 10G 0 disk 

[root@nfs ~]# fdisk /dev/vdb #对/dev/vdb磁盘进行分区
Command (m for help): n #新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #回车 默认创建主分区
Using default response p
Partition number (1-4, default 1): #回车 默认分区编号为1
First sector (2048-20971519, default 2048): #回车 起始扇区默认为2048
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): #回车 结束扇区默认为20971519
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): t #更改分区的系统ID号
Selected partition 1 #对第一个分区进行更改
Hex code (type L to list all codes): 8e #8e 表示Linux LVM(逻辑卷)
Changed type of partition ‘Linux’ to ‘Linux LVM’

Command (m for help): w #保存并退出
The partition table has been altered!

2)对/dev/vdc磁盘进行分区,全盘只分为一个1个分区。

[root@nfs ~]# fdisk /dev/vdc       #对/dev/vdc磁盘进行分区
......
(参照步骤/dev/vdb的划分方式完成)

3)查看分区结果。

[root@nfs ~]# lsblk 
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk 
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 10G 0 disk 
└─vdb1 253:17 0 10G 0 part 
vdc 253:32 0 10G 0 disk 
└─vdc1 253:33 0 10G 0 part

步骤三:将新添加的两块硬盘制作逻辑卷

逻辑卷(LVM)是Linux环境中对磁盘分区进行管理的一种机制,可提高磁盘分区管理的灵活性。

1)安装制作逻辑卷的软件包

[root@nfs ~]# yum -y install lvm2

2)创建物理卷

[root@nfs ~]# pvcreate /dev/vdb1 /dev/vdc1
Physical volume "/dev/vdb1" successfully created.
Physical volume "/dev/vdc1" successfully created.

3)新建名字为vg0的卷组,并查看卷组的相关信息

[root@nfs ~]# vgcreate vg0  /dev/vdb1  /dev/vdc1
Volume group "vg0" successfully created

[root@nfs ~]# vgdisplay #显示卷组信息
— Volume group —
VG Name vg0
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID 1fPi76-7p01-3lMp-bmZq-30m7-Km95-wxRtLF

4)创建逻辑卷


创建逻辑卷:lvcreate -L 大小 -n 逻辑卷名称 卷组


[root@nfs ~]# lvcreate -L 19.99G -n  lv0  vg0
Rounding up size to full physical extent 19.99 GiB
Logical volume “lv0” created.

[root@nfs ~]# lvscan #查看目前系统中有的逻辑卷
ACTIVE ‘/dev/vg0/lv0’ [19.99 GiB] inherit

5)格式化


[root@nfs ~]# mkfs.xfs /dev/vg0/lv0
[root@nfs ~]# blkid /dev/vg0/lv0 #查看逻辑卷设备的属性
/dev/vg0/lv0: UUID=“63ed7305-34f4-4451-a5e7-f5ddee460140” TYPE=“xfs”

6)创建挂载点,并挂载。


[root@nfs ~]# mkdir  /common      #创建挂载点目录
[root@nfs ~]# echo ‘/dev/vg0/lv0 /common xfs defaults 0 0’ >> /etc/fstab #设置开机自动挂载
[root@nfs ~]# mount -a #挂载
[root@nfs ~]# df -Th #查验结果
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 486M 0 486M 0% /dev
tmpfs tmpfs 496M 0 496M 0% /dev/shm
tmpfs tmpfs 496M 6.8M 489M 2% /run
tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 2.1G 36G 6% /
tmpfs tmpfs 100M 0 100M 0% /run/user/0
/dev/mapper/vg0-lv0 xfs 20G 33M 20G 1% /common

步骤四:部署NFS共享服务


1)安装NFS服务器所需软件包。


[root@nfs ~]# yum -y install nfs-utils

2)创建NFS配置文件。


NFS主要配置文件:/etc/exports,默认该文件里面内容是空。


ro表示只读权限


sync请求或写入数据时,数据同步写入到NFS服务器的硬盘后才返回


[root@nfs ~]# echo “/common 192.168.1.0/24(ro,sync)” >> /etc/exports

3)重载配置文件信息。


#一般修改NFS配置文档后,执行exportfs –rv即可使修改的/etc/exports生效。


[root@nfs ~]# exportfs -rv

4)启动系统服务nfs-server,并设置开机自启。


NFS使用的是随机端口,每次启动NFS都需要将自己的随机端口注册到rpcbind服务,这样客户端访问NFS时先到rpcbind查询端口信息,得到端口信息后再访问NFS服务。服务端首先运行rpcbind服务,然后运行 nfs-server服务。


[root@nfs ~]# systemctl enable --now rpcbind
[root@nfs ~]# systemctl enable --now nfs-server
[root@nfs ~]# showmount -e localhost #列出本机NFS共享资源
Export list for localhost:
/common 192.168.1.0/24



3 案例3:rsync+inotify实时同步


3.1 问题


本案例要求将NFS云服务器共享目录的数据同步至backup云服务器,具体要求如下:



  • 在NFS云服务器上安装inotify-tools工具
  • 实现免密码交互
  • 编写数据同步脚本并测试效果
  • 3.2 方案

    inotifywait与rsync的结合,主要思路:

    while  inotifywait监控操作
    do
            需要执行的rsync同步操作
    done
    

    3.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:购买云服务器

    1)按照如下信息购买华为云主机。

    基础配置:无
    网络配置:手动分配IP地址 192.168.1.22
    高级配置:云服务器名称 backup
    确认配置:1台
    

    步骤二:实现rsync+inotify实时同步

    1)拷贝数据。将ecs-proxy主机上的inotify-tools-3.13.tar.gz软件包和tedu.jpg图片远程拷贝至nfs云主机。

    [root@nfs ~]#scp root@192.168.1.252:/root/project3/DAY01/inotify-tools-3.13.tar.gz /root
    [root@nfs ~]#scp root@192.168.1.252:/root/project3/DAY01/test.jpg /root
    

    2)安装inotify-tools软件包。

    [root@nfs ~]# yum -y install rsync     #安装rsync软件包,华为云服务器默认已安装。
    [root@nfs ~]# tar -xf /root/inotify-tools-3.13.tar.gz  -C  /usr/src/
    [root@nfs ~]# cd /usr/src/inotify-tools-3.13/ 
    [root@nfs inotify-tools-3.13]# ./configure                    #配置
    [root@nfs inotify-tools-3.13]# make && make install          #编译&&安装
    

    3)实现nfs到backup免密码交互,将ecs-proxy上的私钥拷贝到nfs服务器上。

    [root@nfs inotify-tools-3.13]# scp root@192.168.1.252:/root/.ssh/id_rsa /root/.ssh
    [root@nfs inotify-tools-3.13]# echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config #避免第一次输入提示(yes/no)
    

    4)编写数据同步脚本并测试效果。

    [root@nfs inotify-tools-3.13]# cat /root/irsync.sh 
    #!/bin/bash
    FROM_DIR="/common" 
    RSYNC_CMD="rsync -az --delete $FROM_DIR root@192.168.1.22:/" 
    while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR 
    do
    $RSYNC_CMD
    done
    [root@nfs inotify-tools-3.13]# chmod +x  /root/irsync.sh
    [root@nfs inotify-tools-3.13]# /root/irsync.sh &
    [root@nfs inotify-tools-3.13]# cp   /root/test.jpg    /common
    [root@nfs inotify-tools-3.13]# echo 123 >  /common/a.txt
    

    5)在backup云主机验证同步结果

    [root@backup ~]# ls  /common
    a.txt test.jpg
    

    4 案例4:部署Redis服务器

    4.1 问题

    本案例要求在redis-0001云服务器上部署redis服务并启动服务,具体要求如下:

    • 购买华为云服务器
    • 部署Redis服务
    • 更改相关配置

    4.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:购买云服务器

    1)按照如下信息购买华为云主机。

    基础配置:无
    网络配置:手动分配IP地址 192.168.1.31
    高级配置:云服务器名称 redis-0001
    确认配置:1台
    

    步骤二:部署Redis服务器

    1)安装软件包。

    [root@resdis ~]# scp root@192.168.1.252:/root/project3/DAY01/redis-4.0.8.tar.gz /root
    [root@resdis ~]# tar -xf /root/redis-4.0.8.tar.gz 
    [root@resdis ~]# cd redis-4.0.8/
    [root@resdis redis-4.0.8]# yum -y install gcc gcc-c++
    [root@resdis redis-4.0.8]# make && make install
    [root@resdis redis-4.0.8]# /root/redis-4.0.8/utils/install_server.sh  #redis的安装,可一路回车
    Welcome to the redis service installer
    This script will help you easily set up a running redis server
    

    Please select the redis port for this instance: [6379]
    Selecting default: 6379
    Please select the redis config file name [/etc/redis/6379.conf]
    Selected default - /etc/redis/6379.conf
    Please select the redis log file name [/var/log/redis_6379.log]
    Selected default - /var/log/redis_6379.log
    Please select the data directory for this instance [/var/lib/redis/6379]
    Selected default - /var/lib/redis/6379
    Please select the redis executable path [/usr/local/bin/redis-server]
    Selected config:
    Port : 6379
    Config file : /etc/redis/6379.conf
    Log file : /var/log/redis_6379.log
    Data dir : /var/lib/redis/6379
    Executable : /usr/local/bin/redis-server
    Cli Executable : /usr/local/bin/redis-cli
    Is this ok? Then press ENTER to go on or Ctrl-C to abort.
    Copied /tmp/6379.conf => /etc/init.d/redis_6379
    Installing service…
    Successfully added to chkconfig!
    Successfully added to runlevels 345!
    Starting Redis server…
    Installation successful!

    2)更改监听IP为192.168.1.31。

    [root@resdis redis-4.0.8]# sed -i '/^bind/s/127.0.0.1/192.168.1.31/' /etc/redis/6379.conf
    [root@resdis redis-4.0.8]# /etc/init.d/redis_6379 restart
    

    3)在redis的服务管理脚本中指定IP连接。

    [root@resdis redis-4.0.8]# sed -ri "43 s/(.*)(shutdown)/\1 -h 192.168.1.31 \2/" /etc/init.d/redis_6379 
    [root@resdis redis-4.0.8]# /etc/init.d/redis_6379 restart
    

    4)测试。

    [root@resdis redis-4.0.8]# netstat -antpu | grep redis
    tcp 0 0 192.168.1.31:6379 0.0.0.0:* LISTEN 14632/redis-server
    [root@redis-0001 redis-4.0.8]# redis-cli -h 192.168.1.31
    192.168.1.31:6379> ping
    PONG
    

    5 案例5:部署Web服务器集群

    5.1 问题

    本案例要求在nginx-0001、nginx-0002、nginx-0003上部署nginx网站服务器,并挂载NFS服务器的共享目录到网站服务器,实现数据共享,具体要求如下:

    • 购买华为云服务器
    • 部署Nginx网站服务
    • 更改Nginx主配置文件
    • 挂载NFS服务器的共享目录到网站服务器

    5.2 步骤

    实现此案例需要按照如下步骤进行。

    目前的网站一般都会有动态和静态数据,默认Nginx仅可以处理静态数据,用户访问任何数据都是直接返回对应的文件,但如果访问的是一个脚本,就会导致直接返回脚本给用户,而用户没有脚本解释器,也看不懂脚本源代码!

    步骤一:购买华为云服务器

    1)按照如下信息购买华为云主机。

    基础配置:无
    网络配置:手动分配IP地址 192.168.1.11
    高级配置:云服务器名称 nginx
    确认配置:3台
    

    将用到的相关软件包进行分发。

    [root@ecs-proxy ~]# cd /root/ansible
    [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/nginx-1.12.2.tar.gz dest=/root"
    将用到的网页资源包进行分发。
    [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/php-redis-demo.tar.gz dest=/root"
    将用到的PHP扩展模块软件包进行分发。
    [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY01/php-redis-2.2.4.tar.gz dest=/root"
    

    步骤二:构建网站服务器集群

    (nginx-0001、nginx-0002、nginx-0003三台云服务器配置相同,可先在第一台手动安装,后续的主机用脚本执行安装。)

    1)安装依赖包。

    [root@nginx-0001 ~]#yum -y install php php-fpm php-mysql mariadb-server
    php(PHP的主程序,解释器,负责解析PHP代码。)
    php-fpm(是让PHP支持支持fastcgi的扩展)
    php-mysql(是让PHP可以连接使用nysql数据库的扩展包)
    mariadb-server(数据库服务器软件)
    

    2)源码安装Nginx。

    [root@nginx-0001 ~]# yum -y install gcc pcre-devel openssl-devel
    [root@nginx-0001~]# tar -xf /root/nginx-1.12.2.tar.gz
    [root@nginx-0001 ~]# cd /root/nginx-1.12.2
    [root@nginx-0001 nginx-1.12.2]#./configure --with-http_ssl_module --with-http_stub_status_module
    [root@nginx-0001 nginx-1.12.2]# make && make install
    

    3)更改主配置文件,实现动静分离。

    [root@nginx-0001 nginx-1.12.2]#sed -i '65,71s/#//' /usr/local/nginx/conf/nginx.conf
    [root@nginx-0001 nginx-1.12.2]#sed -i '/SCRIPT_FILENAME/d' /usr/local/nginx/conf/nginx.conf
    [root@nginx-0001 nginx-1.12.2]#sed -i 's/fastcgi_params/fastcgi.conf/' /usr/local/nginx/conf/nginx.conf
    

    查看更改的是否正确【更改之后的结果如下】
    [root@nginx-0001 nginx-1.12.2]# sed -n ‘65,70p’ /usr/local/nginx/conf/nginx.conf
    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }

    4)启动服务


    [root@nginx-0001 nginx-1.12.2]#systemctl enable --now php-fpm
    [root@nginx-0001 nginx-1.12.2]#/usr/local/nginx/sbin/nginx

    [root@nginx-0001 nginx-1.12.2]#echo /usr/local/nginx/sbin/nginx >> /etc/rc.local //设置开机自启
    [root@nginx-0001 nginx-1.12.2]#chmod +x /etc/rc.local

    5)部署网页资源

    [root@nginx-0001 nginx-1.12.2]# tar -xf /root/php-redis-demo.tar.gz -C /root
    [root@nginx-0001 nginx-1.12.2]# cp -rf /root/php-redis-demo/* /usr/local/nginx/html/
    

    步骤三:Nginx网站服务挂载NFS服务器共享目录

    1)安装依赖包。

    [root@nginx-0001 nginx-1.12.2]# cd ~
    [root@nginx-0001 ~]# yum -y install nfs-utils
    [root@nginx-0001 ~]# showmount -e 192.168.1.21
    Export list for 192.168.1.21:
    /common 192.168.1.0/24
    

    2)、创建挂载点并设置开机自动挂载

    [root@nginx-0001 ~]# mkdir /data
    [root@nginx-0001 ~]# echo '192.168.1.21:/common /data nfs defaults 0 0' >> /etc/fstab
    [root@nginx-0001 ~]# mount -a
    

    [root@nginx-0001 ~]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on
    devtmpfs devtmpfs 486M 0 486M 0% /dev
    tmpfs tmpfs 496M 0 496M 0% /dev/shm
    tmpfs tmpfs 496M 6.8M 489M 2% /run
    tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup
    /dev/vda1 ext4 40G 2.1G 36G 6% /
    tmpfs tmpfs 100M 0 100M 0% /run/user/0
    192.168.1.21:/common nfs4 20G 33M 20G 1% /data

    3)、更改Nginx配置文件。【浏览器缓存优化】


    修改nginx配置文件,如果是图片,则让用户的浏览器缓存30天。


    [root@nginx-0001 ~]# vim +71 /usr/local/nginx/conf/nginx.conf
    location ~* .(gif|jpg|png) {
    root /data;
    expires 30d;
    }
    #备注:location匹配用户的地址栏,如果用户在访问的是图片;
    #expires告诉浏览器应该把资料缓存多久。

    [root@nginx-0001 ~]# /usr/local/nginx/sbin/nginx -s reload
    [root@nginx-0001 ~]# netstat -utnlp | grep :80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4073/nginx: master



    6 案例6:实现Session共享


    6.1 问题


    本案例本案例要求安装扩展模块实现PHP的Session共享,具体要求如下:



    • 安装PHP扩展模块
  • 修改php-fpm服务配置文件
  • 在华为云负载均衡ELB中添加监听器和后端服务器组
  • 测试Session共享
  • 6.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:为Web网站服务器安装PHP扩展模块

    Session:存储在服务器端,保存用户名、登陆状态等信息。

    Cookies:由服务器下发给客户端,保存在客户端的一个文件里。

    如果编译安装php的时候,没有安装拓展,可以后续通过phpize安装拓展。

    phpize是一个运行脚本,主要作用是检测php的环境还有在特定的目录中生成相应的configure文件,这样make install之后,生成的.so文件才会自动加载到php扩展目录下面。

    [root@nginx-0001 ~]# yum -y install autoconf automake php-cli php-devel
    [root@nginx-0001 ~]# tar -xf /root/php-redis-2.2.4.tar.gz -C /root
    [root@nginx-0001 ~]# cd /root/phpredis-2.2.4/
    

    [root@nginx-0001 phpredis-2.2.4]# phpize
    Configuring for:
    PHP Api Version: 20100412
    Zend Module Api No: 20100525
    Zend Extension Api No: 220100525
    [root@nginx-0001 phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
    [root@nginx-0001 phpredis-2.2.4]# make && make install
    [root@nginx-0001 phpredis-2.2.4]# ls /usr/lib64/php/modules/
    curl.so fileinfo.so json.so mysqli.so mysql.so pdo_mysql.so pdo.so pdo_sqlite.so phar.so redis.so sqlite3.so zip.so

    2)、修改配置文件php.ini


    指定模块目录的路径
    [root@nginx-0001 phpredis-2.2.4]#echo ‘extension_dir = “/usr/lib64/php/modules/”’ >> /etc/php.ini
    指定扩展模块文件名
    [root@nginx-0001 phpredis-2.2.4]#echo ‘extension = “redis.so”’ >> /etc/php.ini

    3)、修改php-fpm的配置文件


    默认定义Sessoin会话信息本地计算机(默认在/var/lib/php/session)


    #定义Session信息存储在公共的redis服务器上,主机参数中为redis
    [root@nginx-0001 phpredis-2.2.4]# sed -ri ‘/session.save_handler/s/(.)(=)(.)/\1\2 redis/’ /etc/php-fpm.d/www.conf

    #通过path参数定义公共的redis服务器在哪(服务器的IP和端口)
    [root@nginx-0001 phpredis-2.2.4]#sed -ri ‘225c php_value[session.save_path] = “tcp://192.168.1.31:6379”’ /etc/php-fpm.d/www.conf
    [root@nginx-0001 phpredis-2.2.4]#systemctl restart php-fpm
    [root@nginx-0001 phpredis-2.2.4]# netstat -anput | grep php-fpm
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10814/php-fpm: mast

    步骤二:在华为负载均衡ELB中添加监听器和后端服务器

    1)点击左上角的服务列表,在出现的界面中点击“弹性负载均衡ELB”,如图-8所示。

    弹性负载均衡器接受来自客户端的传入流量并将请求转发到一个或多个可用区中的后端服务器。

    *监听器:您可以向您的弹性负载均衡器添加一个或多个监听器。监听器使用您配置的协议和端口检查来自客户端的连接请求,并根据您定义的转发策略将请求转发到一个后端服务器组里的后端服务器。

    *后端服务器组:每个后端服务器组使用您指定的协议和端口号将请求转发到一个或多个后端服务器。

    图-6

    2)点击自己创建的负载均衡名称,如图-7所示。

    图-7

    3)点击【监听器】->【添加监听器】,如图-8所示。

    图-8

    4)配置监听器的名称,如图-11所示。配置后端服务器组的名称,如图-9所示。

    图-9

    图-10

    5)添加后端服务器。如图-11所示。

    点击刚才所创建的监听器名称—>【后端服务器组】->【添加】

    图-11

    6)、将三台Nginx添加进后端服务器,并配置监听端口。图-12、图13所示。

    图-12

    图-13

    【注意:刚添加后端服务完成后,健康检查结果为异常。需要等待30s,刷新页面。健康健康检查结果为正常。】

    步骤三:测试Session共享

    注意:修改index.php和home.php两个文件的内容,添加页面颜色属性。以区别后端不同的服务器:<body bgcolor=颜色>。

    1)更改Nginx-0002和Nginx-0003测试页的背景颜色。

    Nginx-0001 白
    默认底色即为白色,无需修改。
    

    Nginx-0002 红
    [root@nginx-0002 ~]# sed -i ‘10c <body bgcolor=red>’ /usr/local/nginx/html/index.php
    [root@nginx-0002 ~]# sed -i ‘15c <body bgcolor=red>’ /usr/local/nginx/html/home.php

    Nginx-0003 蓝
    [root@nginx-0003 ~]# sed -i ‘10c <body bgcolor=blue>’ /usr/local/nginx/html/index.php
    [root@nginx-0003 ~]# sed -i ‘15c <body bgcolor=blue>’ /usr/local/nginx/html/home.php

    2) 更客户端使用浏览器访问三台不同的Web服务器。输入任意用户名和密码。如图-14、图-15、图-16所示。




    图-14



    Ctrl+F5强制刷新,无需再次输入密码登录,即可登录其他服务器。实现Session共享。




    图-15





    图-16



    3)查看Redis服务器上存储的Session值。


    [root@resdis ~]# redis-cli -h 192.168.1.31
    192.168.1.31:6379> keys *
    1. “PHPREDIS_SESSION:iob93v6u8mdqni8he79alir4f4”
      192.168.1.31:6379> get PHPREDIS_SESSION:iob93v6u8mdqni8he79alir4f4
      “login_user|s:2:“aa”;logged_in|s:4:“true”;id|s:26:“iob93v6u8mdqni8he79alir4f4”;”


      7 案例7:部署Jumpserver

      7.1 问题

      本案例要求在ecs-proxy上部署Jumpserver堡垒机。

      7.2 方案

      JumpServer 是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统。

      伴随着企业 IT 的发展,企业可以对IT 资产进行集中管理,并且构建统一访问入口,从而有效地控制 IT 系统的运维风险。

      身份认证Authentication :防止身份冒用和复用

      账号管理Account : 防止内部误操作和权限滥用

      授权控制Authorization : 人员和资产的管理

      安全审计Audit :追溯的保障和事故分析的依据

      Jumpserver官方网站 https://jumpserver.org/

      7.3 步骤

      实现此案例需要按照如下步骤进行。

      步骤一:将ecs-proxy主机规格进行升级。

      1)打开华为云官网—>【控制台】—>【弹性云服务器】—>【购买弹性云服务器】

      基础配置购买信息 如图-17、图-18、图-19所示。

      按照如下信息购买华为云主机。

      基础配置:通用计算型 s6.large.2   2vCPUs|4GB
      

    网络配置:手动分配IP地址 192.168.1.100 弹性公网IP(全动态BGP) 按带宽计费 带宽大小1
    高级配置:云服务器名称 jumpserver 密码
    确认配置:1台



    图-17





    图-18





    图-19



    步骤二、Jumpserver极速安装


    参考官方网站,进行部署构建。


    注意:安装时,redis配置文件必须指定为/etc/redis.conf


    [root@jumpserver setuptools]# scp root@192.168.1.252:/root/project3/DAY01/redis-4.0.8.tar.gz  /root
    [root@jumpserver ~]# tar -xf redis-4.0.8.tar.gz -C /root
    [root@jumpserver ~]# cd /root/redis-4.0.8/
    [root@jumpserver redis-4.0.8]# make && make install

    [root@jumpserver redis-4.0.8]# /root/redis-4.0.8/utils/install_server.sh
    Welcome to the redis service installer
    This script will help you easily set up a running redis server

    Please select the redis port for this instance: [6379]
    Selecting default: 6379
    Please select the redis config file name [/etc/redis/6379.conf]/etc/redis.conf
    Please select the redis log file name [/var/log/redis_6379.log]
    Selected default - /var/log/redis_6379.log
    Please select the data directory for this instance [/var/lib/redis/6379]
    Selected default - /var/lib/redis/6379
    Please select the redis executable path [/usr/local/bin/redis-server]
    Selected config:
    Port : 6379
    Config file : /etc/redis.conf
    Log file : /var/log/redis_6379.log
    Data dir : /var/lib/redis/6379
    Executable : /usr/local/bin/redis-server
    Cli Executable : /usr/local/bin/redis-cli
    Is this ok? Then press ENTER to go on or Ctrl-C to abort.
    Copied /tmp/6379.conf => /etc/init.d/redis_6379
    Installing service…
    Successfully added to chkconfig!
    Successfully added to runlevels 345!
    Starting Redis server…
    Installation successful!

    [root@jumpserver redis-4.0.8]# /etc/init.d/redis_6379 stop

    手动编写redis服务的service文件

    [root@jumpserver redis-4.0.8]# vim  /usr/lib/systemd/system/redis.service
    [Unit]
    Description=The Redis Server
    After=syslog.target
    After=network.target
    [Service]
    Type=forking
    ExecStart=/etc/init.d/redis_6379  start
    ExecReload=/etc/init.d/redis_6379  restart
    ExecStop=/etc/init.d/redis_6379  stop
    [Install]
    WantedBy=multi-user.target
    

    [root@jumpserver redis-4.0.8]# systemctl daemon-reload
    [root@jumpserver redis-4.0.8]# systemctl restart redis

    2) 安装jumpserver工程包


    [root@jumpserver ~]# cd /opt/
    [root@jumpserver opt]# yum -y install git
    [root@jumpserver opt]# wget -qO /opt/setuptools.tar.gz http://demo.jumpserver.org/download/setuptools.tar.gz
    [root@jumpserver opt]# tar xf setuptools.tar.gz
    [root@jumpserver opt]# cd setuptools/
    [root@jumpserver setuptools]# cp config_example.conf config.conf //将配置文件改名
    [root@jumpserver setuptools]# ./jmsctl.sh help //列出使用方法

    [root@jumpserver setuptools]# ./jmsctl.sh install


    LINA:负责页面的展现


    Core:Jumpserver管理后台的核心组件。


    Luna:是Web Terminal前端页面展现。


    koko:实现了SSH Server和Web Terminal Server的组件。


    Guaca:Apache跳板机项目,Jumpserver使用其组件实现RDP功能。


    注意:如果在查看组件状态时,有出现ERROR字样的,可使用jmsctl脚本单独安装。


    [root@jumpserver setuptools]# ./jmsctl.sh   status
    __ _____
    / /_ ______ ___ ____ / / ______ _____ _____
    __ / / / / / __ `__ / __ \__ / _ / / | / / _ / /
    / /
    / / /
    / / / / / / / /
    / /
    / / _/ / | |/ / / /
    _
    /_
    ,// // // .//___// |/_//
    /_/
    				 Version:  v2.3.1
    

    MySQL Check … [ OK ]
    Redis Check … [ OK ]
    Docke. Check … [ OK ]
    Nginx Check … [ OK ]
    Py3 Check … [ OK ]
    Core Check … [ OK ]
    Koko Check … [ OK ]
    Guaca. Check … [ OK ]

    4)在浏览器中输入公网IP地址,如图-20所示。


    帐号:admin 密码:admin


    第一次登陆需要重置密码




    图-20



    步骤三、添加资产




    图-21



    名称为显示名,用户名为登录名。密码可自定义。


    该用户的创建是为了后期登录jumpserver。


    /

    图-22


    创建管理用户,管理用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 推送系统用户获取资产硬件信息 等。如图-23、图-24所示。




    图-23



    名称可以自定义


    用户名为nignx-0001主机的管理员用户root


    密码为nginx-0001主机root用户密码




    图-24



    创建资产,如图-25,图-26所示




    图-25



    主机名可以自定义,最好和创建主机得主机名一致


    IP地址为nginx-0001主机的IP地址


    系统平台选择Linux




    图-26



    目前处于可连接,如图-27所示。




    图-27



    前面创建了用户,创建了资产。在jumpserver中需要对用户授权资产。


    创建系统用户。系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户。 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。如图-28、图29所示。




    图-28



    名称为显示名称,可自定义。


    用户名可自定义,随后管理用户会在资产设备中推送(创建)该用户。


    开启自动推送。


    密码在此处自定义,推送时,根据此处设置的密码在资产设备中设置。




    图-29



    资产授权,如图-30,图-31所示。




    图-30





    图-31



    使用Web终端界面连接,如图-31,图-32所示。




    图-31





    图-32



    从ecs-proxy主机上去连接Jumpserver主机。使用的admin用户就是jumpserver中的用户。(也可只用我们之前创建的用户webuser登录)


    [root@ecs-proxy ~]# ssh admin@192.168.1.100 -p2222
    Administrator, 欢迎使用JumpServer开源堡垒机系统
    1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
    2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
    3) 输入 p 进行显示您有权限的主机.
    4) 输入 g 进行显示您有权限的节点.
    5) 输入 d 进行显示您有权限的数据库.
    6) 输入 k 进行显示您有权限的Kubernetes.
    7) 输入 r 进行刷新最新的机器和节点信息.
    8) 输入 h 进行显示帮助.
    9) 输入 q 进行退出.
    

    Opt>p

    ID | 主机名 | IP | 备注
    ±------±----------------------±---------------------------±------------------+
    1 | nginx-0001 | 192.168.1.11 |
    页码:1,每页行数:11,总页数:1,总数量:1
    提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
    搜索:
    [Host]> 1
    复用SSH连接(nginx01@nginx-0001)[连接数量: 2]
    Last login: Mon Sep 28 02:17:44 2020 from 192.168.1.100

    Welcome to Huawei Cloud Service
    

    [nginx01@nginx-0001-0001 ~]$ pwd
    /home/nginx01

    5)查看录像


    查看录像可以知晓之前做过的操作,如图-33所示。




    图-33



    附件知识:


    1、网络流量度量术语


    IP(Internet Protocal),这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被统计的总次数。一天内相同IP地址的客户端访问网站页面只会被记录一次。


    PV(Page View),访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计。(每刷新一次也算)


    2、并发连接。


    定义:网站服务器在单位时间内能够处理的最大连接数。


    3、QPS


    定义:每秒钟处理完请求的次数。(QPS = 并发量 / 平均响应时间)


    4、Fast CGI(Fast common gateway interface 快速通用网关接口),是网站服务器和动态语言间通信的接口。如图17所示。


    (Nginx不支持对外部动态程序直接调用或解析,所以的动态程序必须通过FastCGI接口来调用。)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹汇川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值