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,并按照作业一描述的那样去测试使用