python全栈开发第7天 nginx服务器和nfs的搭建及组成集群的方法
作业一: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的搭建及组成集群的方法的更多相关文章
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Python全栈开发
Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...
随机推荐
- 几种常用的java 实现反转的方法———reverse
1.最简单的方法 public static String reverse1(String str) return new StringBuffer(str).reverse().toString() ...
- zookeeper配置文件说明
zoo.cfg #zoo.cfg 的内容 # 心跳检查的时间 2秒 tickTime=2000 # 初始化时 连接到服务器端的间隔次数,总时间10*2=20秒 initLimit=10 # ZK Le ...
- php三种排序算法
1. <?php /** * 快速排序不费空间也节省时间 */ $arr=array(5,1,8,2,6,4,9,3,7); // $arr=array(1,2,3,4,5,6,7,8,9); ...
- 【Swing】图形用户界面基础
前言 简单总结一下图形用户界面(Graphical User Interface)的相关基础,如GUI的基本元素:窗口,以及介绍Java中的图形界面开发设计的技术. 图形用户界面 图形用户界面就是以图 ...
- java HttpClientUtil帮助类
自己写的java模拟请求帮助类,已经包含header头构造,会话session维持 package com.haozl.back.util; import java.io.File; import j ...
- XShell 假死
使用vim时因为使用windows word带来的坏习惯经常喜欢ctrl+s ,而这个造成的结果就是xshell假死,解决办法是ctrl+q
- 第六章 组件 63 组件传值-父组件向子组件传值和data与props的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- servlet 如何处理多请求访问以及线程讲解
servlet 如何处理多请求访问以及线程讲解 场景:js循环500次请求同一个后台接口,接口内部逻辑:1.查询商品数量,2.扣减商品数量 ,那么该接口是否需要考虑多线程并发安全问题? 分析: 1.先 ...
- https://openmaptiles.org/
docker save klokantech/tileserver-gl:latest -o tileserver-gl.tar docker load -i tileserver-gl.tar do ...
- pd.dataframe和series以及np.narray的维度升降
1.第一步读入泰坦尼克号数据集 import pandas as pd data = pd.read_csv(r".\Narrativedata.csv" ,index_col=0 ...