项目整体介绍
该项目是一个分布式文件服务器项目,Nginx实现反向代理与负载均衡,服务器上部署的是fastCGI+spawn-fcgi模块创建进程来接收通过web服务器而来的用户请求,并交由fastDFS文件系统管理文件。
正向代理与反向代理
正向代理
正向代理是客户端(用户)的代理。它代表客户端向服务器发起请求。客户端将请求发送到正向代理服务器,正向代理服务器再将请求转发到目标服务器。
反向代理
反向代理是服务器端的代理。它代表服务器接受客户端的请求,并将请求转发给内部的服务器。
静态请求与动态请求
静态请求
就是访问一些不用数据处理的请求,比如说访问某一个静态界面,返回某个静态html网页。
动态请求
需要对请求进行解析,并且会影响服务器的一些数据的请求,为动态请求。
分布式和集群的区别
分布式
分布式系统一定是由多个节点组成的系统。这些节点不是单独的,是需要配合在一起首先某个功能,比如这里的fastDFS提供的分布式服务,一个文件管理的功能需要三个节点实现-跟踪节点、存储节点、客户节点。
集群
集群是指在几个服务器上部署相同的应用程序来分担客户端的请求。比如这里的文件服务器系统的集群,可以用集群来实现文件存储功能,使得一个服务器的压力减少。
区别
就拿做饭来说,分布式就是把洗菜、切菜、炒菜分开实现,而集群就是再请一个人来做饭,两个人一起做饭,减少顾客多的时候的压力。
其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。
fastDFS
fastDFS框架中的三个角色
追踪器 ( Tracker ) – 管理者 – 守护进程
管理存储节点
存储节点 – storage – 守护进程
存储节点是有多个的
客户端 – 不是守护进程, 这是程序猿编写的程序
文件上传
文件下载
启动顺序
首先启动的是追踪器,然后是存储节点,最后是客户端
文件的备份
同一组的主机存储的是一样的数据,根据同一组的主机的最小容量作为组的容量,可以保证在一定的程度上减少文件存储节点的关闭从而访问不到文件。
CGI与fastCGI
CGI
CGI叫做通用网关接口,CGI是Web服务器运行时,调用外部应用程序(即CGI程序)的规范,CGI规范允许Web服务器执行外部程序。原始的CGI是要为每个请求创建一个进程来实现的
fastCGI
扩展功能的CGI、是CGI的改进,FastCGI 使用持续的进程来处理一连串的Web请求,这些进程由FastCGI进程管理器ngx_http_fastcgi_module 管理,而不是Web服务器。