作业一:nginx服务

二进制安装nginx包

1、使用命令:yum install epel-release -y ,来安装epel,安装成功如下图:(因为我用32位的centos7老是出现各种各样的问题,所以这里我用32位的centos6.8版本进行演示)

2、使用yum install nginx -y 命令对Nginx服务进行安装,如下图:

安装完成如下图:

3、启动Nginx服务:

4、我们来尝试访问一下我们的网页,发现无法打开此网页,如下图:

5、因为这是简单的实验,所以我们来来把我们的防火墙关掉,再次做一下测试发现能够正常显示了:

作为web服务修改配置文件,让配置生效,验证配置

1、使用命令:mv /usr/share/nginx/index.html /usr/shsare/nginx/1.txt 将默认的主页改成1.txt;

2、使用命令:vim /etc/nginx/nginx.conf 编辑nginx的配置文件为内容如图:

3、在/usr/Mysite 目录下建立自己的index.html文档,写入hello world 内容;

4、使用命令:service nginx reload ,重新加载配置文件后,我们再次访问我们的网站,成功:

作业二:nfs服务
二进制安装nfs

使用命令:yum -y install rpcbind nfs-utils

作为共享存储挂载在三台web的网站根目录下

实现,在任意一台web上修改的结果,其余两台都可以看到

1、web1服务器中已经成功挂载了nfs上面的共享的目录,及能够看到html目录下的文件,如图所示:

2、web2上面的结果和web1上面相同,如图所示:

3、web3上面的结果和其它两个结果是相同的:

4、删除web1上面的内容后,可以发现其它两台服务器web1、web2的html中的文件都消失了,这正是我们需要的结果:

作业三:nginx反向代理三台web
实现基于轮询的方式调度三台web,并验证结果

vim /etc/nginx/nginx.conf编辑文件,编辑后重新加载nginx服务,如图所示:

出现了轮询效果:

实现基于权重的方式调度三台web,并验证结果

将上一步的配置文件改成如图所示的参数:

实际效果不在这里截图了,显然web1出现的次数要比其他两个服务器的页面出现次数多。

实现基于hash的方式调用三台web,并验证结果

使用ip-hash,客户端的IP地址用作散列密钥,以确定应为客户端请求选择服务器组中的哪个服务器。此方法确保来自同一客户端的请求将始终定向到同一服务器,除非此服务器不可用。

需要将上一步的配置文件修改成下图中的配置:

经过验证,页面一直是在web2界面。

作业四:nginx反向代理+三台web+nfs共享存储实现集群配置

共享存储的特点是,无论是从哪一台服务器上面修改网页文件,从三台服务器上面哪个服务器访问都是同一个文件,如图中所示:

1、这台是主服务器:

2、这台是web1服务器:

3、这台是web2服务器

4、这台是web3服务器:

我们在web1上面修改/usr/share/nginx/html目录下的index.html文件内容:

这样我们在以下的截图中看出,所有的服务器访问的文件内容都是一致的:

作业五:源码安装nginx,并按照作业一描述的那样去测试使用

python全栈开发第7天 nginx服务器和nfs的搭建及组成集群的方法的更多相关文章

  1. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  2. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  3. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  4. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  5. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  6. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  7. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  8. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  9. Python全栈开发

    Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...

随机推荐

  1. mysql 中的 tinyint 字段

    只能存储  -128 ~ 127  之间的数字

  2. windows环境下备份与恢复,与文件拷贝

    mySQL数据库在windows环境下备份与恢复 解压版需进入数据库安装目录.安装版可以忽略本步骤: 1.先在运行中输入CMD,启动命令行2.进入Mysql的Bin目录:E:\Program File ...

  3. libusb_control_setup

     libusb_fill_control_transfer(transfer, devh, buf, ctrl_urb_complete_cb,             utrans, 1000); ...

  4. Django :执行 python manage.py makemigrations 时报错 TypeError: __init__() missing 1 required positional argument: 'on_delete'

    原因 执行命令 python manage.py makemigrations 报错 TypeError: __init__() missing 1 required positional argum ...

  5. JS 对浏览器相关的操作

    // 获取浏览器 宽高 var width = window.innerWidth || document.documentElement.clientWidth || document.body.c ...

  6. linux 用户和用户组

    groupadd group1 useradd -g group1 user1 passwd user1 groups 查看当前用户的用户组 finger和id命令可以查看用户信息

  7. Poi导出Excle

    场景 准备金系统需要从数据库读取大量数据存放到List集合中(可能还会做逻辑上的处理),并生成一个Excle文件,下载到客户本地. 问题一:客户体验 如果导出的文件比较大,比如几十万条数据,同步导出页 ...

  8. HTML实现背景颜色的渐变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 编译gpu集群版caffe

    在这个版本安装之前,要先装好opencv,openmpi等. 下载地址:https://github.com/yjxiong/caffe.git 我的opencv是2.4.12版本 编译是用了: cm ...

  10. 使用Apache Curator管理ZooKeeper(转)

    Apache ZooKeeper是为了帮助解决复杂问题的软件工具,它可以帮助用户从复杂的实现中解救出来. 然而,ZooKeeper只暴露了原语,这取决于用户如何使用这些原语来解决应用程序中的协调问题. ...