NFS、分布式、FastDFS

NFS服务基础

 

文件系统的类型:

本地文件系统:EXT3/4、SWAP、NTFS、...    ——本地磁盘

伪文件系统:/proc、/sys、...             ——内存空间

网络文件系统:NFS(Network File System) ——网络存储空间

 

NFS与Samba对比:

NFS: 实现类unix系统间区享。

Samba:实现windows和类unix系统间共享

 

NFS共享协议:Unix/Linux最基本的文件共享机制,1980年由SUN公司开发,依赖于RPC(远程过程调用)映射机制(NFS只实现了共享功能,底层数据传输功能由RPC提供)。存取于远程磁盘中的文档数据,对应用程序是透明的,就好像访问本地的文件一样。

1、NFS依赖于rpc服务。NFS只提供了共享功能,没有实现底层数据传输,它的数据传输采用的是RPC服务。

2、RPC称作远程过程调用。在RHEL5中用portmap,在RHEL6以后采用rpcbind服务

3、RPC端口号111,NFS端口号2049

NFS:网络文件系统  类UNIX系统实现共享文件夹

CIFS: Common Internet FileSystem  windows与类unix系统共享文件夹

RPC:远程过程调用,在RHEL6中使用rpcbind服务,在RHEL5中使用portmap服务,端口号111

 

查看NFS共享列表:showmount -e [服务器地址]

挂载NFS共享目录:mount [-t nfs] 服务器地址:共享目录 挂载点

 

配置NFS服务器

/etc/exports配置解析:共享目录 客户机地址1(参数,参数,...)客户地址2(.. ..) ...

客户机地址:IP地址(192.168.4.20)、网段地址(192.168.4.0/24或192.168.4.*),所有主机(*)、单个域(*.tarena.com)、主机名

参数:rw:可读可写、ro:只读、sync:同步写、async:异步写入

  no_root_squash: 保留来自客户端的root权限

  all_squash:客户端权限都降为nfsnobody

如果希望远程root用户创建的文件仍然是root所有者,需要加no_root_squash;如果希望任何用户创建的文件,都是nfsnobody拥有者,则设置all_squash选项

默认情况下,来自NFS客户端的root用户会被降权,若要保留其root权限,注意应添加no_root_squash控制参数;

# exportfs -rv  重新共享输出内容

 

# vim /etc/exports

/root  192.168.4.201 (rw,no_root_squash)   //将/root共享给201,可写、保留客户端的root权限

/usr/src 192.168.4.0/24 (ro)   //将/usr/src共享给4.0网段,只读

# service rpcbind restart        //启用RPC机制

# service nfs restart            //启用nfs服务

 

201存储服务器把本机的磁盘D NAS共享给前端的应用服务器(网站服务器)101和102使用

[root@web101 ~]# umount /dev/sdb1
  • 存储服务器的配置

1.1 提供存储空间

[root@web101 ~]# fdisk /dev/vdd    //n--->p--->1--->回车--->回车--->p--->w

[root@web101 ~]# fdisk -l /dev/vdd

[root@web101 ~]# mkfs.ext4 /dev/vdd1

[root@web101 ~]# mkdir /sharedir       //创建共享目录

[root@web101 ~]# mount /dev/vdd1 /sharedir

[root@web101 ~]# df -h /sharedir

1.2 使用NFS服务共享磁盘挂载目录

a 安装

在RHEL5中RPC用portmap服务,在RHEL6以后,用rpcbind服务。NFS端口号2049,RPC端口号111

[root@storage201 ~]# rpm -q  rpcbind     //rpcbind用来提供RPC协议的支持

[root@storage201 ~]# yum list |grep -i nfs  

[root@storage201 ~]# rpm -q nfs-utils || yum -y install nfs-utils

[root@storage201 ~]# service rpcbind start; chkconfig rpcbind on

[root@storage201 ~]# vim /etc/exports

##共享/sharedir文件夹的读写权限101,102服务器

/sharedir 192.168.4.101(rw) 192.168.4.102(rw)

[root@storage201 ~]# chmod o+w /sharedir

[root@storage201 ~]# ll -d /sharedir

[root@storage201 ~]# service nfs start; chkconfig nfs on; service nfs status

[root@storage201 ~]# showmount -e localhost

[root@storage201 ~]# mount | grep /sharedir

/dev/vdd1 on /sharedir type ext4 (rw)

[root@storage201 ~]# which showmount

/usr/sbin/showmount

[root@storage201 ~]# rpm -qf /usr/sbin/showmount

nfs-utils-1.2.3-64.el6.x86_64

[root@storage201 ~]# exportfs -rv        //重新输出共享目录

二、配置前端应用服务器101、102

[root@web101 ~]# yum -y install nfs-utils

[root@web101 ~]# showmount -e 192.168.4.201

[root@web101 ~]# service rpcbind restart

[root@web101 ~]# mount -t nfs 192.168.4.201:/sharedir /var/www/html/

//注意事项:从未授权的客户机将无法挂载此共享;若未启用no_root_squash,挂载后会无权限浏览(750)

[root@web101 ~]# mount    //查看挂载

[root@web101 ~]# df -h

在web101、web102在/var/www/html/写入文件

[root@storage201 ~]# ls /sharedir/*.html

Multipath多路径

多路径概述

当服务器到某一存储设备有多条路径时,每条路径都会识别为一个单独的设备

多路径允许你将服务器节点和储存阵列间的多个I/O路径配置为一个单一设备

这些I/O路径是可包含独立电缆、交换器和控制器的实体SAN链接

多路径集合了I/O路径,并生成由这些集合路径组成的新设备

多路径主要功能

冗余:主备模式,高可用

改进的性能:主主模式,负载均衡

NFS、分布式、FastDFS_第1张图片

多路径设备:

若没有DM Multipath,从服务器节点到储存控制器的每一条路径都会被系统视为独立的设备,即使I/O路径连接的是相同的服务器节点到相同的储存控制器也是如此

DM Multipath提供了有逻辑的管理I/O路径的方法,即在基础设备顶端生成单一多路径设备

利用iSCSI实现多路径

应用服务器上将共享路径卸载并登出

  • 配置存储节点:192.168.4.201

配置应用服务器eth1网络:192.168.2.101、192.168.2.102

配置iSCSI服务端:准备共享介质(分区、LV或磁盘镜像)

                  安装scsi-target-utils

  准备规划iqn名称

  修改target.conf配置文件,以提供存储

  启动tgtd服务

 

二、在201上配置192.168.2.2也能使用共享存储后重启系统

[root@storage201 ~]# vim /etc/tgt/targets.conf   //添加一块磁盘



    backing-store /dev/vde

    write-cache off

    initiator-address 192.168.4.101

    initiator-address 192.168.4.102

    initiator-address 192.168.2.101

    initiator-address 192.168.2.102



[root@storage201 ~]# service tgtd restart

[root@storage201 ~]# tgt-admin -s

三、客户端在两张网络上发现设备,登录设备

访问共享存储:

因为到达共享存储有两条路径,所以需要在两条路径上都执行发现命令

[root@web101 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.201 --discover

[root@web101 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.201 --discover

[root@web101 ~]# service iscsi restart;chkconfig iscsi on;chkconfig iscsid on

[root@web101 ~]# lsblk

[root@web101 ~]# iscsiadm --mode node --targetname iqn.2017-11.cn.tedu:storage201.diske --portal 192.168.4.201:3260 -l

[root@web101 ~]# iscsiadm --mode node --targetname iqn.2017-11.cn.tedu:storage201.diske --portal 192.168.2.201:3260 -l

[root@web101 ~]# ls /dev/sd*

四、多路径配置

1、安装多路径软件

[root@web101 ~]# yum list |grep -i multipath

[root@web101 ~]# yum install -y device-mapper-multipath
  1. 获取wwid的方法

多路径设备识别符

每个多路径设备都有一个WWID(全球识别符),它是全球唯一的、无法更改的号码

默认情况下会将多路径设备的名称设定为它的WWID

可以在多路径配置文件中设置user_friendly_names选项,该选项可将别名设为格式为mpathn的节点唯一名称

也可以自定义存储设备名称

假如共享存储在本地被识别为/dev/sdb和/dev/sdc,那么获取它WWID方法是:

[root@web101 ~]# scsi_id --whitelisted --device=/dev/sda  //获取wwid

[root@web101 ~]# scsi_id --whitelisted --device=/dev/sdb

1IET     00030001

//因为两个设备虽然名称不一样,但是实际上是一个设备,所以他们的WWID是相同的

3、生成配置文件并启用多路径

[root@web101 ~]# mpathconf --user_friendly_names n    //不使用友好名称定义用户名

//若无需编辑该配置文件,可使用此命令启动多路径守护程序

[root@web101 ~]# vim /etc/multipath.conf

defaults {

        user_friendly_names no

        getuid_callout   "/lib/udev/scsi_id --whitelisted --device=/dev/%n"

}

##添加以下内容

multipaths {

    multipath {

        wwid    "1IET     00030001"

        alias   mpathe

    }

}

六、启服务并验证

[root@web101 ~]# service multipathd start; chkconfig multipathd on

[root@web101 ~]# blkid /dev/mapper/mpathe

[root@web101 ~]# ls /dev/mapper/mpathe      //mpatha即为多路径设备

[root@web101 ~]# mount /dev/mapper/mpathe /var/www/html/



[root@web101 ~]# multipath -rr     //重新加载多路径信息

[root@web101 ~]# multipath -ll     //查看多路径信息

[root@web101 ~]# ifdown eth1

[root@web101 ~]# multipath -rr

[root@web101 ~]# multipath -ll

分区:为/dev/mapper/mpathe分区,得到的第一个分区名为/dev/mapper/mpathep1

 

 

 

总结:

多路径:前端应用服务器访问存储服务器时,可以使用不同网段的ip地址访问。

优点:实现访问存储服务器时,路径的冗余和备份。

缺点:通过不同网段的ip地址访问时,会产生两个盘,其实是同一磁盘

解决方法:识别磁盘的唯一识别号WWID

多路径的实现:

1 在存储服务器上共享本机硬盘,共享给多个网段的ip地址

2 在前端应用服务器通过多个网段的ip地址发现设备和登入设备

3 查看登入设备的wwid

4 安装提供多路径服务的软件包

5 创建服务的主配置文件

6 编辑服务的主配置文件

7 启动服务并设置为开机运行

更新多路径信息  # multipath -rr

查看多路径信息  # multipath -ll

8 查看是否生成对应的设备 ls /dev/mapper/别名名称

9 分区、格式化别名名称 挂载设备

 

多路径的不足:存储的故障

解决方式:分布式

 

 

 

 

 

 

 

 

 

 

 

 

分布式文件系统

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直 接连接在本地节点上,而是通过计算机网络与节点相连

分布式文件系统的设计基于客户机/服务器模式

一个典型的网络可能包括多个供多用户访问的服务器

对等特性允许一些系统扮演客户机和服务器的双重角色

分布式文件系统的特点: ——分布式文件系统可以有效解决数据的存储和管理难题

将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统

众多的节点组成一个文件系统网络

每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输

人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需像使用本地文件系统一样管理和存储文件系统中的数据

衡量分布式文件系统的优劣

数据的存储方式:无论采取何种存储方式,目的都是为了保证数据的存储安全和方便获取

数据的读取速率:包括响应用户读取数据文件的请求,写信数据文件所在的节点、读取实际硬盘中数据文件的时间、不同节点间的数据传输时间以及一部分处理器的处理时间等

数据的安全机制:采取冗余、备份、镜像等方式

常用分布式文件系统:

Lustre:一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护

Hadoop:不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架

OpenAFS:一套开放源代码的分布式文件系统,允许系统之间通过局域网和广域网来分享档案和资源

googleFs:一个可扩展分布式文件系统,用于大型的,分布式的,对大量数据进行访问的应用

基础架构

服务器角色

NFS、分布式、FastDFS_第2张图片

与单机的文件系统不同,分布式文件系统不是将这些数据放在一块磁盘上,由上层操作系统来管理

数据存放在一个服务器集群上,由集群中的服务器,各尽其责,通力合作,提供整个文件系统的服务

重要的服务器包括:

主控服务器:主控服务器上放送所有的文件目录信息,要找一个文件,必须先访问它。

Master管理各个数据服务器收集它们的信息,了解所有数据服务器的生存现状,然后给它们分配任务

数据服务器:存放数据的服务器,设计为冗余模式

主要的工作械就是定期向主控服务器汇报其状况,然后等待并处理命令,更快更安全的存放好数据

数据分布:

的方式存储:把文件数据切成数据块;将数据块存储在数据服务器上

独立文件的方式存储:每台数据服务器存储独立的文件;多台数据服务器存储相同的文件,实现冗余及负载均衡

 

 

 

FastDFS原理

FastDFS是一款开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统,作者为淘宝网的余庆,2008年7月发布

****ceph也是生产中常用的分布式文件系统工具***

功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等

解决了大容量存储和负载均衡的问题

特别适合以文件为载体的在线服务,如相册网站、视频网站等

FastDFS用户列表:支付宝、京东商场、赶集网、迅雷、58同城、51CTO、UC...

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)

跟踪器:主要做调度工作,在访问上起负载均衡的作用

存储节点:完成文件管理的所有功能,即存储、同步和提供存取接口,同时对文件的元数据进行管理

FastDFS工作流程

FastDFS系统结构

NFS、分布式、FastDFS_第3张图片

跟踪器和存储节点都可以由一台多台服务器构成

跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务

跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少

FastDFS采用了分组存储方式

集群由一个或多个组构成,集群存储总容量为集群中所有组的存储容量之和

一个组由一台或多台存储服务器组成,同组内的多台Storage server之间是互备关系,同组存储服务器上的文件是完全一致

文件上传、下载、删除等操作可以在组内任意一台Storage server上进行

一个组的存储容量为该组内存储服务器容量最小的那个

采用分组存储方式的好处是灵活、可控性较强。比如上传文件时,可以由客户端直接指定上传到的组

一个分组的存储服务器访问压力较大时,可以在该组增加存储服务器来扩充服务能力(纵向扩容

当系统容量不足时,可以增加组来扩充存储容量(横向扩容

不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步

Storage server采用binlog文件记录文件上传、删除等更新操作

binlog中只记录文件名,不记录文件内容

文件同步只在同组内的Storage server之间进行,采用push方式,即源头服务器同步给目标服务器

FastDFS上传文件过程

NFS、分布式、FastDFS_第4张图片

client询问tracker上传到的storage,不需要附加参数

tracker返回一台可用的storage

client直接和storage通讯完成文件上传

FastDFS下载文件过程

NFS、分布式、FastDFS_第5张图片

client询问tracker下载文件的storage,参数为文件标识(卷名和文件名)

tracker返回一台可用的storage

client直接和storage通讯完成文件下载

 

FastDFS配置及应用

FastDFS官网:http://bbs.chinaunix.net/forum-240-1.html

国际网址:https://sourceforge.net/projects/fastdfs/

  https://fastdfs.googlecode.com/files/FastDFS_v4.0.tar.gz

  • 配置主控服务器93

1、安装信赖包

[root@master93 ~]# rpm -q gcc gcc-c++ make libevent

[root@master93 ~]# yum -y install gcc gcc-c++ make libevent     //安装yum源中的依赖关系包

安装本地文件中的依赖关系包:

[root@master93 ~]# yum install -y libevent-devel*.rpm  //要预先上传

[root@master93 ~]# tar xzf FastDFS_v4.06.tar.gz

[root@master93 ~]# cd FastDFS/

[root@master93 FastDFS]# ./make.sh

[root@master93 FastDFS]# ./make.sh install

[root@master93 FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/

[root@master93 FastDFS]# mkdir -pv /data/fastdfs

[root@master93 FastDFS]# vim /etc/fdfs/tracker.conf

 

起服务

修改配置文件

 

启动服务

Tracker配置

2、安装tracker

[root@master93 ~]# tar xzf FastDFS_v4.06.tar.gz    //解压缩

[root@master93 ~]# cd FastDFS/

[root@master93 FastDFS]# vim INSTALL         //查看安装指南

[root@master93 FastDFS]# ./make.sh

[root@master93 FastDFS]# ./make.sh install

3、配置

[root@master93 FastDFS]# mkdir -pv /data/fastdfs     //创建数据存储目录

[root@master93 FastDFS]# vim /etc/fdfs/tracker.conf    //修改配置文件

22 base_path=/data/fastdfs       # 设置基础目录

max_connections=4096             # 设置最大连接数

store_group=group1               # 设置存储组名

use_storage_id = true            # 使用stroage_id代替ip地址

storage_ids_filename = storage_ids.conf



[root@master93 FastDFS]# cp conf/storage_ids.conf /etc/fdfs/    

//创建storage id文件

[root@master93 FastDFS]# vim /etc/fdfs/storage_ids.conf   

//编辑storage id文件,加入存储组声明

100001   group1  192.168.4.103

100002   group1  192.168.4.104

 

4、起动并验证

[root@master93 FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/

[root@master93 FastDFS]# chmod +x /etc/init.d/fdfs_trackerd

[root@master93 FastDFS]# chkconfig --add fdfs_trackerd

  //或[root@master93 FastDFS]# chkconfig fdfs_trackerd on

[root@master93 FastDFS]# chkconfig --list fdfs_trackerd

[root@master93 FastDFS]# /etc/init.d/fdfs_trackerd

### 用法:/etc/init.d/fdfs_trackerd {start|stop|status|restart|condrestart}

[root@master93 FastDFS]# /etc/init.d/fdfs_trackerd start

[root@master93 FastDFS]# /etc/init.d/fdfs_trackerd status   

[root@master93 FastDFS]# netstat -tlnp | grep :22122

[root@master93 FastDFS]# vim /data/fastdfs/logs/trackerd.log

[root@master93 FastDFS]# ls /data/fastdfs/

 

  • 配置存储服务器103、104

环境准备:准备存储空间

准备两个存储服务器103、104    //104与103相同的准备

# qemu-img create -f qcow2 /var/lib/libvirt/images/st1.img 20G

# qemu-img create -f qcow2 /var/lib/libvirt/images/st2.img 20G

[root@storage103 ~]# service iptables stop;chkconfig iptables off

[root@storage103 ~]# setenforce 0

[root@storage103 ~]# mount /dev/cdrom /mnt

[root@storage103 ~]# fdisk /dev/vdb

[root@storage103 ~]# fdisk -l /dev/vdb

[root@storage103 ~]# mkfs.ext3 /dev/vdb1

[root@storage103 ~]# blkid /dev/vdb1

配置storage

安装yum源中的依赖关系包

[root@storage103 ~]# rpm -q gcc gcc-c++ make libevent

[root@storage103 ~]# yum -y install gcc gcc-c++ make libevent  //安装本地文件中的依赖关系包

[root@storage103 ~]# yum -y install *.rpm

[root@storage103 ~]# tar xzf FastDFS_v4.06.tar.gz    //解压缩

[root@storage103 ~]# cd FastDFS/

[root@storage103 FastDFS]# vim INSTALL        //查看安装指南

[root@storage103 FastDFS]# ./make.sh

[root@storage103 FastDFS]# ./make.sh install

[root@storage103 FastDFS]# ls /etc/fdfs/

[root@storage103 ~]# mkdir -pv /data/fastdfs/     //创建数据存储目录

[root@storage103 ~]# mkdir /data1

[root@storage103 ~]# mount /dev/vdb1 /data1

[root@storage103 ~]# tail -1 /etc/fstab

UUID=a3274382-0ffb-44a5-8212-0d7685101be7 /data/fastdfs  ext4   defaults    0 0

[root@storage103 ~]# mount -a

[root@storage103 FastDFS]# vim /etc/fdfs/storage.conf      //修改配置文件

 37 base_path=/data/fastdfs      # 设置基础工作目录

 42 max_connections=4096           # 设置最大连接数

 96 store_path_count=1

100 store_path0=/data1    # 设置上传文件目录

105 subdir_count_per_path=256

109 tracker_server=192.168.4.93:22122    # 设置连接的Tracker

172 upload_priority=10             # 设置组内服务器优先级



[root@master93 FastDFS]# ls /data/fastdfs/data/    //最初只有一个文件

storage_changelog.dat

起动并测试

[root@storage103 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/

[root@storage103 FastDFS]# chmod +x /etc/init.d/fdfs_storaged

[root@storage103 FastDFS]# chkconfig --add fdfs_storaged

  //或[root@storage103 FastDFS]# chkconfig fdfs_storaged on

[root@storage103 FastDFS]# chkconfig --list fdfs_storaged

[root@storage103 FastDFS]# /etc/init.d/fdfs_storaged start

[root@storage103 FastDFS]# /etc/init.d/fdfs_storaged status

[root@storage103 FastDFS]# netstat -tlnp | grep :23000

[root@storage103 FastDFS]# ls /data1/data  //查看初始化成功

[root@storage104 FastDFS]# cat /data/fastdfs/logs/storaged.log



[root@master93 FastDFS]# ls /data/fastdfs/data/

storage_changelog.dat   storage_servers_new.dat

storage_groups_new.dat  storage_sync_timestamp.dat



[root@master93 FastDFS]# cat /data/fastdfs/logs/trackerd.log

storage数据文件说明:

storage为用户创建256个目录存放上传文件

辅助文件的目录为/data/fastdfs/data

 .data_init_flag:初始化信息

 storage_stat.dat:统计信息

 sync/binlog.index:当前binlog文件索引号

 sync/binlog.###:更新操作记录(日志)

 sync/${id}.mark:同步完成情况

 

 

文件操作

客户端环境准备:拷贝命令

将fdfs_test / fdfs_upload_file / fdfs_delete_file / fdfs_download_file / client.conf 拷贝到~/bin目录

[root@storage103 ~]# scp /usr/local/bin/fdfs_* 192.168.4.254:/root/bin/

[root@storage103 ~]# scp /etc/fdfs/client.conf 192.168.4.254:/etc/



[root@pc207 bin]# mkdir -pv /tmp/client_test/   创建工作目录

[root@pc207 ~]# vim /etc/client.conf     //修改客户端配置文件——创建连接主控服务器的配置文件

 10 base_path=/tmp/client_test/

 14 tracker_server=192.168.4.93:22122

 

  1. 使用测试命令

通过fdfs_test

上传文件到storage:测试程序会对一个文件上传两次。返回的文件id也是两个并上传文件附加属性。Storage上生成4个文件

上传本地文件到文件到存储服务器:

[root@pc207 ~]# /root/bin/fdfs_test /etc/client.conf  upload /etc/passwd

[root@storage103 FastDFS]# ls /data1/data/00/00

wKhxPFc3oD6ARewxAAC6OPZ7hp8271_big.log    wKhxPFc3oD6ARewxAAC6OPZ7hp8271.log

wKhxPFc3oD6ARewxAAC6OPZ7hp8271_big.log-m  wKhxPFc3oD6ARewxAAC6OPZ7hp8271.log-m

删除文件:

[root@pc207 ~]# /root/bin/fdfs_test /etc/client.conf delete 上传后的路径名

 

通过其他相关命令

  1. 通过fdfs_upload_file上传文件
[root@pc207 ~]# /root/bin/fdfs_upload_file /etc/client.conf  /etc/hosts  
  1. 通过fdfs_download_file下载文件
[root@pc207 ~]# /root/bin/fdfs_download_file /etc/client.conf  上传后的路径名 下载后的名字

3)通过fdfs_delete_file删除文件

[root@pc207 ~]# /root/bin/fdfs_delete_file /etc/client.conf  上传后的路径名

 

配置web访问

服务器端脚本语言: python、php、java、asp、jsp

客户端脚本语言:    javascript(js)

web: 程序代码文件

存储服务器:静态文件

数据库:动态文件

静态文件:模板文件、js(javascript)代码、图片、CSS样式表文件

动态文件:有变化的数据

[root@storage103 ~]# netstat -pantul |grep :80   //若被占用,要先停止

1、安装依赖包

[root@storage103 ~]# yum install -y pcre zlib pcre-devel openssl-devel zlib-devel

2、创建运行帐户

[root@storage103 ~]# useradd -s /sbin/nologin nginx

[root@storage103 ~]# grep nginx /etc/group

3、编译安装nginx

[root@storage103 ~]# tar xzf fastdfs-nginx-module_v1.16.tar.gz

[root@storage103 ~]# ls fastdfs-nginx-module/src/

[root@storage103 ~]# cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

[root@storage103 ~]# tar xzf nginx-1.7.10.tar.gz

[root@storage103 ~]# cd nginx-1.7.10/

[root@storage103 nginx-1.7.10]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/

[root@storage103 nginx-1.7.10]# make && make install

4、配置

[root@storage103 ~]# vim /etc/fdfs/mod_fastdfs.conf

 40 tracker_server=192.168.4.93:22122

 47 group_name=group1

 53 url_have_group_name = true

 62 store_path0=/data1

[root@storage103 ~]# vim /usr/local/nginx/conf/nginx.conf

# location / {

#    root   html;

#    index  index.html index.htm;

# }                                      将这段说明注释掉,增加以下说明

 location / {

            ngx_fastdfs_module;

        }

5、起动并测试

[root@storage103 ~]# /etc/init.d/fdfs_storaged  stop

[root@storage103 ~]# /etc/init.d/fdfs_storaged  start

[root@storage103 ~]# /usr/local/nginx/sbin/nginx

[root@storage103 ~]# netstat -pantul |grep :80

[root@storage103 ~]# echo storage103 > /usr/local/nginx/html/a.thml

[root@pc207 ~]# elinks --dump http://192.168.4.103/a.html

//访问时直接转给模块了,所以找不到访问文件



[root@pc207 ~]# /root/bin/fdfs_upload_file  /etc/client.conf  /root/图片/day.jpg

group1/M00/00/00/wKgEZ1oE6WyIJtU7AA6q2wjnW8sAAAAAQAAF-oADqrz467.jpg

[root@room1pc27 ~]# firefox http://192.168.4.103/group1/M00/00/00/wKgEZ1oE6WyIJtU7AA6q2wjnW8sAAAAAQAAF-oADqrz467.jpg &

 

你可能感兴趣的:(分布式)