nginx服务与nfs服务
一:nginx服务
二进制安装nginx包
作为web服务修改配置文件
在安装完成后,首先需要修改配置文件
vim /etc/nginx/nginx.conf
我们修改的是默认目录下的index.html文件
vim /usr/share/nginx/html/index.html
开启nginx服务,让配置文件生效。
systemctl start nginx
在浏览器中根据本机ip演示效果。
注:为了能让nginx能够开机即启动,我们可执行:
systemctl enable nginx
二:nfs服务
二进制安装nfs(四台机器上均需安装)
在根下新建一个/share目录,将1234567890写入该目录下的2.txt文件中。
安装完毕后在服务端修改nfs配置文件,目的为了确定哪个文件夹共享,允许哪个ip的客户端能够访问,及用户映射关系等,然后启动rpc(必须先启动,因为他基于通信)和nfs。
在此配置文件的输入格式为:
<输出目录> [客户端1] 选项(访问权限,用户映射,其他)例如:/share 192.168.16.0/24(rw,sync,fsid=0)
然后查找另外三台机器的ip并记录(这里只展示两个)。
我们在另外三台web上启动和查询共享存储服务端的文件在什么目录下
我们需要先到服务器中修改权限
然后再回到web机上进行修改文件,并到其他两台查看是否有变化。
另外一台也是一样的。
如上图可以看到,在共享存储挂载在三台web的网站根目录下后,在任意一台web上修改的结果,其余两台都可以看到。
三:nginx反向代理三台web
首先类似于作业一,修改这三台服务器的index.html文件。注意:这里的文件可以自己设定路径也可使用默认的。具体参照作业一)(其他两台同理)
在代理服务端修改配置文件
vim /usr/share/nginx/html/index.html
1.实现基于轮询的方式调度三台web的修改。
注:这里的ip均为这三台web服务器的ip。
完成后验证的结果为:
这三种结果来回更替,这就是所谓的轮询!
2.实现基于权重的方式调度三台web的修改。
location下的命令不改变,将http下的命令略作修改
在这种方式下,连续的刷新,五次会有三次出现web1.
3.实现基于hash的方式调用三台web的修改
这种方式下,连续的刷新并不会改变所出现的内容,这就是hash,因为短时间连续的访问下,始终访问这台服务器会将数据放在内存中,有会话保持的作用,有助于提高访问效率。
四:nginx反向代理+三台web+nfs共享存储实现集群配置
关系如图:
具体操作:我们根据作业三的反向代理,在此基础上,我们可以把代理服务器看成nfs的共享存储设备,依然是根据作业二中(安装nfs服务器,建立共享目录;然后新建nfs的配置文件;完成后在其他三台服务器中根据ip查找共享存储服务器(即代理服务器)的共享目录并进行挂载;最后设置代理服务器的目录访问权限,这样我们就可以在其他三台服务器中对share目录下的文件进行增改删除的访问。)
然后由于我们本身就是基于作业三的前提下做的,即反向代理也已经完成了。
我们的关键问题就是如何将这两个服务所实践的功能给链接起来。
先来看具体的访问流程:根据代理服务器的ip并加上你想访问的share文件名在浏览器进行查询,代理服务器根据nginx服务进行选择三台web服务器其中的一台进行处理,需要注意的是,由上面我们知道到达web服务器的命令格式形式是http//192.168.0.0/文件名,我们依然是基于web服务器的nginx服务将此命令处理后,根据nfs服务来访问共享存储设备。我们知道实现nfs共享功能的一个关键因素是将存储设备的share文件分别挂载到了这三台web服务器的目录下,所以这里我们只需要将web服务的nginx配置文件下的location改成:{ root /777}也就是设置nfs服务时你所挂载的目录。这样就实现了作业二与作业三的连通。
五:源码安装nginx,并按照作业一描述的那样去测试使用
1.在官网下载源码的nginx,并将他从物理机拖到虚拟机下的root目录下。
下载地址为:
2.在安装之前我们需要将之前安装的nginx卸载。
yum remove nginx -y
3.安装nginx的所需要安装包:
pcre: 用来作地址重写的功能。
zlib:nginx 的gzip模块,传输数据打包,省流量(但消耗资源)。
openssl:提供ssl加密协议。
4.解压所下载的nginx压缩包。(注意解压前需安装gcc编译工具)
tar xvf /root/nginx-1.10.3.tar.gz
5.然后cd到解压的目录文件下,执行配置安装选项,确定安装位置和其他配置。
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module
6.然后编译安装。
make && make install
7.设置开机启动(systemctl enable nginx)