作业一: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. redis主从+ 哨兵模式(sentinel)+漂移VIP实现高可用系统

    原文:https://www.jianshu.com/p/c2ab606b00b7 客户端程序 客户端程序(如PHP程序)连接redis时需要ip和port,但redis-server进行故障转移时, ...

  2. U盘安装 CentOS7图解

    参考  https://jingyan.baidu.com/article/e75aca856cca69142fdac673.html

  3. tensorboardX使用中 AttributeError: 'function' object has no attribute 'graph'

    最近在使用tensorboardX可视化网络结构,因为tensorboardX并非pytorch原生的可视化工具,所以版本之间并不兼容 在使用的过程中会遇到,AttributeError: 'func ...

  4. canvas签名

    <template> <div class="share" style="background:#fff"> <div class ...

  5. TCP保活定时器

    TCP有Keepalive功能,它和HTTP的Keepalive功能目的不一样.TCP服务器希望知道客户端是否崩溃.重新启动或者中间路由不通.保活定时器就提供这种功能. 在进一步介绍TCP的保活定时器 ...

  6. Linux:rm可不可以实现删除所有文件,除了demo文件

    方法1: shopt -s extglob #开启扩展通配符 rm -rf !(demo) #删除除了demo的文件 方法2: find /test -not -name "demo&quo ...

  7. Delphi 配置BDE数据源

    樊伟胜

  8. MySQL授权远程用户登录权限

    1 举例子,建数据库,然后 赋予用户远程访问的所有权限,最后刷新权限 create database cmf DEFAULT CHARACTER SET utf8; grant all on cmf. ...

  9. 第四章· MySQL客户端工具及SQL讲解

    一.客户端命令介绍 1.mysql 1.用于数据库的连接管理 1) 连接(略) 2) 管理: #MySQL接口自带的命令 \h 或 help 或? 查看帮助 \G 格式化查看数据(key:value) ...

  10. java8学习之Optional深入详解

    自上次[http://www.cnblogs.com/webor2006/p/8243874.html]函数式接口的学习告一段落之后,这次来学习一下Optional,它并非是函数式接口的概念,点击查看 ...