当前位置: 首页 > news >正文

高端网站建设需要的人员配备2022恢复线下教学通知

高端网站建设需要的人员配备,2022恢复线下教学通知,杭州住房建设部官方网站,小程序定制团队FastDFS单节点部署 1、FastDFS入门1.1 分布式文件系统1.2 FastDFS 简介1.3 FastDFS 发展历史1.4 FastDFS 整体架构1.5 FastDFS 线上使用者 2、FastDFS 环境搭建2.1 FastDFS 安装2.1.1 安装前的准备2.1.2 安装 libfastcommon库2.1.3 安装 FastDFS 2.2FastDFS 配置2.2.1 去掉/etc… FastDFS单节点部署 1、FastDFS入门1.1 分布式文件系统1.2 FastDFS 简介1.3 FastDFS 发展历史1.4 FastDFS 整体架构1.5 FastDFS 线上使用者 2、FastDFS 环境搭建2.1 FastDFS 安装2.1.1 安装前的准备2.1.2 安装 libfastcommon库2.1.3 安装 FastDFS 2.2FastDFS 配置2.2.1 去掉/etc/fdfs/目录下 FastDFS 配置文件的后缀名2.2.2 修改 tracker.conf 文件2.2.3 修改 storage.conf 文件2.2.4 在 Linux 服务器上创建上面指定的目录2.2.5 然后启动 FastDFS 2.3FastDFS 启动2.3.1 启动 FastDFS 的 tracker 服务2.3.2 启动 FastDFS 的 storage 服务2.3.3 查看启动进程2.3.4 查看 storage 是否已经注册到了 tracker 下2.3.5 首次启动 storage 后会在配置的路径下创建存储文件的目录 2.4FastDFS重启2.4.1 重启 tracker2.4.2 重启 storage 2.5 FastDFS 关闭2.5.1 关闭 tracker 执行命令2.5.2 关闭 storage 执行命令2.5.3 kill 关闭 fastdfs 2.6 FastDFS 测试2.6.1 测试之前需要修改 client.conf 配置文件修改两个配置2.6.2 测试文件上传2.6.3 FastDFS 生成的文件目录结构及名称示例2.6.4 测试文件下载2.6.5 测试文件删除2.6.6 注意 3、分布式文件系统 FastDFS的 HTTP 访问3.1 概述3.2 前期准备工作3.2.1 将 Fastdfs 的 Nginx 扩展模块源代码上传到 Linux 上3.2.2 解压下载下来的 fastdfs-nginx-module-master.zip 文件 3.3安装 Nginx 并且添加 fastDFS 模块3.3.1 将 Nginx 的 tar 包上传到 Linux 上3.3.2 解压上传的 Nginx 文件3.3.3 切换至解压后的 Nginx 主目录执行配置操作3.3.4 执行命令进行编译3.3.5 执行命令进行安装3.3.6 以上安装 Nginx 的 FastDFS 扩展模块注意事项 3.4FastDFS 的 Nginx 访问配置3.4.1 拷贝mod_fastdfs.conf到/etc/fdfs/目录下3.4.2 修改 mod_fastdfs.conf 配置文件3.4.3 在/opt/fastdfs/目录下创建 nginx_mod 目录3.4.4 配置 Nginx 的配置文件 3.5FastDFS 的 Nginx 访问启动与测试3.5.1 启动带有 Fastdfs 模块的 Nginx3.5.2 重启或启动 FastDFS 服务进程3.5.3 上传一个文件进行测试验证3.5.4 在浏览器访问上传的文件3.5.5 扩展3.5.6 FastDFS扩展模块执行流程 4、FastDFS 在 Java 项目中开发示例4.1 在实际项目开发中FastDFS 提供的主要功能4.2 FastDFS 文件系统的 Java 客户端4.2.1 下载官方的源代码4.2.2 解压4.2.3 采用 maven 命令编译成 jar 安装到本地 maven 库4.2.4 在 Java 程序中使用它提供的 API 来访问 FastDFS 文件系统 4.3文件上传功能的实现4.3.1 需求4.3.2 实现步骤 1、FastDFS入门 1.1 分布式文件系统 分布式文件系统 (Distributed File System) 是一个软件/软件服务器这个软件可以用来管理文件。但这个软件所管理的文件通常不是在一个服务器节点上而是在多个服务器节点上这些服务器节点通过网络相连构成一个庞大的文件存储服务器集群这些服务器都用于存储文件资源通过分布式文件系统来管理这些服务器上的文件。 常见的分布式文件系统有FastDFS、GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS 等。其实均是类GFS的文件系统。 分布式文件系统与传统文件系统对比 传统方式弊端 如果用户数量多IO操作比较多对磁盘访问压力很大如果磁盘发生故障会造成数据丢失存储容量有限 FastDFS分布式文件系统的优点 解决传统方式的单点故障问题如果某一个节点出现故障还有其他的节点可以用来读取和写入文件可以提供数据备份避免因磁盘损坏导致的文件丢失可以提供扩容的机制无限增加文件存放的空间上限 FastDFS特点 分组存储简单灵活 对等结构不存在单点 文件ID由FastDFS生成作为文件访问凭证。FastDFS不需要传统的nameserver或metaserver 大、中、小文件均可以很好支持可以存储海量小文件 一台storage支持多块磁盘支持单盘数据恢复 提供了nginx扩展模块可以和nginx无缝衔接 支持多线程方式上传和下载文件支持断点续传 存储服务器上可以保存文件附加属性。 1.2 FastDFS 简介 FastDFS 是一个开源的轻量级分布式文件系统为互联网应用量身定做简单、灵活、高效采用 C 语言开发由阿里巴巴开发并开源。 FastDFS 对文件进行管理功能包括文件存储、文件同步、文件访问文件上传、文件下载、文件删除等解决了大容量文件存储的问题特别适合以文件为载体的在线服务如相册网站、文档网站、图片网站、视频网站等等。 FastDFS 充分考虑了冗余备份、线性扩容等机制并注重高可用、高性能等指标使用FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 1.3 FastDFS 发展历史 2008 年 4 月项目启动7 月发布第一个版本 V1.00两年时间内持续升级到 V1.29 2010 年 8 月推出 V2.00 2011 年 6 月推出 V3.00 2012 年 10 月推出 V4.0.0 2013 年 12 月推出 V5.0.0 截止目前最新版是 V5.112017 年 6 月发布 FastDFS 系统架构从第一个版本发布后一直没有大的调整高版本完全兼容低版本的数据可以做到平滑升级推荐更新升级到最新版本 FastDFS 代码托管在 github 上https://github.com/happyfish100/fastdfs 1.4 FastDFS 整体架构 FastDFS 文件系统由两大部分构成一个是客户端一个是服务端。 客户端通常指我们的程序比如我们的 Java 程序去连接 FastDFS、操作 FastDFS那我们的 Java 程序就是一个客户端FastDFS 提供专有 API 访问目前提供了 C、Java 和 PHP 几种编程语言的 API用来访问 FastDFS 文件系统。业务请求的发起方通过专有接口使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。 服务端由两个部分构成一个是跟踪器tracker一个是存储节点storage 跟踪器tracker主要做调度工作在内存中记录集群中存储节点storage的状态信息是前端Client和后端存储节点storage的枢纽。因为相关信息全部在内存中Tracker server的性能非常高一个较大的集群比如上百个 group中有3台就足够了。 跟踪器主要做调度工作管理集群在访问上起到负载均衡的作用。 tracker也可以实现集群。每个tracker节点地位平等。作用引导客户端去哪台服务器存储数据实际上是客户端与存储服务器直接进行通信的并不需要通过Tracker进行中转。存储节点storage用于存储文件包括文件和文件属性meta data都保存到存储服务器磁盘上完成文件管理的所有功能文件存储、文件同步和提供文件访问等。 存储节点完成文件管理的所有功能存储、同步和提供存取接口FastDFS同时对文件的metadata进行管理。需要连接tracker端定期报告自己的情况是否活着剩余容量负载情况分为多个组每个组之间保存的文件是不同的。每个组内部可以有多个成员组成员内部保存的内容是一样的组成员的地位是一致的没有主从的概念。Storage是可以实现横向扩容的向里面添加组服务器且同一个组里面的文件是一样的一台服务器挂了还有别的服务器可以提供访问。实现高可用一台服务器很忙可以将访问分配给其他服务器实现负载均衡。FastDFS上传文件交互过程 client询问tracker上传到的storage不需要附加参数tracker返回一台可用的storageclient直接和storage通讯完成文件上传 FastDFS下载文件交互过程 client询问tracker下载文件的storage参数为文件标识卷名和文件名tracker返回一台可用的storageclient直接和storage通讯完成文件下载 1.5 FastDFS 线上使用者 UC http://www.uc.cn/ 存储容量超过 10TB 支付宝http://www.alipay.com/ 京东商城http://www.jd.com/ 淘淘搜http://www.taotaosou.com/ 飞信http://feixin.10086.cn/ 赶集网http://www.ganji.com/ 淘米网http://www.61.com/ 迅雷http://www.xunlei.com/ 蚂蜂窝http://www.mafengwo.cn/ 5173http://www.5173.com/ 华师京城教育云平台http://www.hsjdy.com.cn/ 视友网http://www.cuctv.com/ 搜道网http://www.sodao.com/ 58 同城http://www.58.com/ 商务联盟网http://www.biz72.com/ 中青网http://www.youth.cn/ 保利威视http://www.freeovp.com/ 梦芭莎http://www.moonbasa.com/ 51CTOhttp://www.51cto.com/ 搜房网http://www.soufun.com/ 2、FastDFS 环境搭建 2.1 FastDFS 安装 2.1.1 安装前的准备 1检查 Linux 上是否安装了 gcc、libevent、libevent-devel yum list installed | grep gcc yum list installed | grep libevent yum list installed | grep libevent-devel2 如果没有安装则需进行安装 yum install gcc libevent libevent-devel -y2.1.2 安装 libfastcommon库 ​ libfastcommon 库是 FastDFS 文件系统运行需要的公共 C 语言函数库 ​ 注意目前最新版本的 v1.0.39 和最新版的 FastDFS5.11 不兼容所有我们这里使用的版本是 v1.0.36 下载地址https://github.com/happyfish100 1 将下载好的 libfastcommon 文件上传到 linux服务器/soft 2 解压下载下来的 tar.gz 压缩包到当前目录 tar -zxvf libfastcommon-1.0.36.tar.gz3 切换到解压后的 libfastcommon 目录 cd libfastcommon-1.0.364 执行 make 脚本进行编译 ./make.sh注意 make 编译的时候如果报错需解决错误后再次进行 make通常发生错误是由于 Linux 缺少某些依赖库导致根据错误提示解决错误 5 执行 make install 进行安装 ./make.sh install#安装完成提示libfastcommon安装在了如下两个位置 #/usr/lib/libfastcommon.so #/usr/lib64/libfastcommon.so #可分别进入这两个目录并查看 cd /usr/lib ls | grep libfastcommon.so cd /usr/lib64 ls | grep libfastcommon.so #由于FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件,执行以下命令 # ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so \ # ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so \ # ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so \ # ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so #如果是fastdfs5.0.8,上述创建软连接可能会提示已经存在但是为了保证没有漏掉建议还是都执行一遍 至此 libfastcommon 库安装完毕 2.1.3 安装 FastDFS FastDFS没有 Windows 版本不能在Windows下使用。 FastDFS需要安装部署在Linux环境下我们这里使用的是 fastdfs-5.11版本201901 下载地址: https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz 1 将下载好的 FastDFS 文件上传到 Linuxhome/soft 2 解压下载下来的 tar.gz 压缩包到当前目录 tar -zxvf fastdfs-5.11.tar.gz3 切换到解压后 FastDFS 的目录 cd fastdfs-5.114 执行 make 脚本进行编译 ./make.sh5 执行 make install 进行安装 ./make.sh install# 验证 cd /etc/fdfs ll #查看配置文件列表 cd /etc/init.d ll |grep fdfs #查看服务脚本 cd /usr/bin ll |grep fdfs #查看执行脚本# 全局替换执行脚本目录(5.0.8及以后的版本就不需要执行这一步了) vim /etc/init.d/fdfs_storaged #编辑fdfs_storaged文件,执行全局替换 :%s/usr/local/bin/usr/bin #(键盘输入才有效) vim /etc/init.d/fdfs_trackerd #编辑fdfs_trackerd文件,执行全局替换 :%s/usr/local/bin/usr/bin #(键盘输入才有效)至此 FastDFS 安装完成 所有编译出来的文件存放在/usr/bin 目录下所有配置文件存放在/etc/fdfs 目录下 6 查看安装后的效果 查看 FastDFS 相关的可执行程序 ll /usr/bin/fdfs*查看 FastDFS 的配置文件 ll /etc/fdfs/7 另外注意需要把解压后的 fastdfs-5.11/conf 目录下的两个文件拷贝到/etc/fdfs/ 否则后续会有很多奇怪问题不好解决 cp http.conf /etc/fdfs/ cp mime.types /etc/fdfs/​ 这两个文件后续需要用到所以先拷贝过去 2.2FastDFS 配置 2.2.1 去掉/etc/fdfs/目录下 FastDFS 配置文件的后缀名 [rootfastdfs01 fastdfs-5.11]# cd /etc/fdfs/ [rootfastdfs01 fdfs]# mv client.conf.sample client.conf [rootfastdfs01 fdfs]# mv storage.conf.sample storage.conf [rootfastdfs01 fdfs]# mv storage_ids.conf.sample storage_ids.conf [rootfastdfs01 fdfs]# mv tracker.conf.sample tracker.conf2.2.2 修改 tracker.conf 文件 默认指向的 FastDFS 作者余庆的目录因为在我们的机器上不存在所有手动改一下 [rootfastdfs01 fdfs]# vim tracker.conf .... base_path/opt/fastdfs/tracker #配置 tracker 存储数据的目录,必须存在的路径需提前手动创建mkdir -p /opt/fastdfs/tracker2.2.3 修改 storage.conf 文件 [rootfastdfs01 fdfs]# vim storage.conf base_path/opt/fastdfs/storage #storage 存储数据目录 store_path0/opt/fastdfs/storage/files #真正存放文件的目录 tracker_server10.0.0.120:22122 #注册当前存储节点的跟踪器地址2.2.4 在 Linux 服务器上创建上面指定的目录 [rootfastdfs01 fdfs]# mkdir -p /opt/fastdfs/tracker [rootfastdfs01 fdfs]# mkdir -p /opt/fastdfs/storage [rootfastdfs01 fdfs]# mkdir -p /opt/fastdfs/storage/files2.2.5 然后启动 FastDFS 2.3FastDFS 启动 FastDFS 服务启动需要启动两个脚本 2.3.1 启动 FastDFS 的 tracker 服务 在任意目录下执行fdfs_trackerd /etc/fdfs/tracker.conf # 启动Tracker # 方式一 /etc/init.d/fdfs_trackerd start # 方式二推荐 service fdfs_trackerd start # 方式三 [rootfastdfs01 fdfs]# fdfs_trackerd /etc/fdfs/tracker.conf # 检查Tracker [rootfastdfs01 fdfs]# ps -ef |grep fdfs root 2512 1 0 12:35 ? 00:00:00 fdfs_trackerd /etc/fdfs/tracker.conf root 2520 1562 0 12:35 pts/0 00:00:00 grep --colorauto fdfs [rootfastdfs01 fdfs]# ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 1024 *:22122 *:* LISTEN 0 128 [::]:22 [::]:* 2.3.2 启动 FastDFS 的 storage 服务 在任意目录下执行fdfs_storaged /etc/fdfs/storage.conf # 启动Storage # 方式一 /etc/init.d/fdfs_storaged start# 方式二推荐 service fdfs_storaged start # 方式三 [rootfastdfs01 fdfs]# fdfs_storaged /etc/fdfs/storage.conf [rootfastdfs01 fdfs]# ps -ef |grep fdfs root 2512 1 0 12:35 ? 00:00:00 fdfs_trackerd /etc/fdfs/tracker.conf root 2541 1 8 12:37 ? 00:00:00 fdfs_storaged /etc/fdfs/storage.conf root 2551 1562 0 12:38 pts/0 00:00:00 grep --colorauto fdfs [rootfastdfs01 fdfs]# ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 1024 *:23000 *:* LISTEN 0 1024 *:22122 *:* LISTEN 0 128 [::]:22 [::]:* 2.3.3 查看启动进程 有启动的执行命令即为启动成功 2.3.4 查看 storage 是否已经注册到了 tracker 下 [rootfastdfs01 data]# fdfs_monitor /etc/fdfs/storage.conf2.3.5 首次启动 storage 后会在配置的路径下创建存储文件的目录 在data目录下创建了256个子目录每个子目录下又有256个子目录有256的平方65536个目录存储文件 2.4FastDFS重启 2.4.1 重启 tracker [rootfastdfs01 data]# fdfs_trackerd /etc/fdfs/tracker.conf restart2.4.2 重启 storage [rootfastdfs01 data]# fdfs_storaged /etc/fdfs/storage.conf restart2.5 FastDFS 关闭 2.5.1 关闭 tracker 执行命令 在任意目录下执行fdfs_trackerd /etc/fdfs/tracker.conf stop [rootfastdfs01 data]# fdfs_trackerd /etc/fdfs/tracker.conf stop2.5.2 关闭 storage 执行命令 在任意目录下执行fdfs_storaged /etc/fdfs/storage.conf stop [rootfastdfs01 data]# fdfs_storaged /etc/fdfs/storage.conf stop2.5.3 kill 关闭 fastdfs 不建议在线上使用 kill -9 强制关闭因为可能会导致文件信息不同步问题 2.6 FastDFS 测试 FastDFS 安装完成之后可以使用 fdfs_test 脚本测试文件上传 2.6.1 测试之前需要修改 client.conf 配置文件修改两个配置 [rootfastdfs01 fdfs]# vim /etc/fdfs/client.conf ... base_path/opt/fastdfs/client tracker_server10.0.0.120:22122在/opt/fastdfs/目录下创建 client [rootfastdfs01 fdfs]# mkdir -p /opt/fastdfs/client2.6.2 测试文件上传 准备需要上传的文件 [rootfastdfs01 ~]# cat aa.txt This is FastDFS test!执行上传命令 [rootfastdfs01 ~]# fdfs_test /etc/fdfs/client.conf upload /root/aa.txt This is FastDFS client test program v5.11Copyright (C) 2008, Happy Fish / YuQingFastDFS may be copied only under the terms of the GNU General Public License V3, which may be found in the FastDFS source kit. Please visit the FastDFS Home Page http://www.csource.org/ for more detail.[2024-06-26 13:55:29] DEBUG - base_path/opt/fastdfs/client, connect_timeout30, network_timeout60, tracker_server_count1, anti_steal_token0, anti_steal_secret_key length0, use_connection_pool0, g_connection_pool_max_idle_time3600s, use_storage_id0, storage server id count: 0 # 跟踪器查询到一个存储节点 tracker_query_storage_store_list_without_group: server 1. group_name, ip_addr10.0.0.120, port23000group_namegroup1, ip_addr10.0.0.120, port23000 # 上传的文件的信息FastDFS会对上传的文件进行重新命名 storage_upload_by_filename # group_name 组名文件上传到哪个组里面这个组决定文件存储到哪个机器里面去 # remote_filename 远程文件名称M00对应tracker.conf中store_path0/opt/fastdfs/storage/files #真正存放文件的目录M00对应第一个磁盘路径两块有可能对应M00、M01三块有可能对应M00、M01、M02 group_namegroup1, remote_filenameM00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt source ip address: 10.0.0.120 file timestamp2024-06-26 13:55:29 file size22 file crc32670579793 example file url: http://10.0.0.120/group1/M00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt # 会上传两份文件一份主一份从 # fastDFS在存文件文件的时候一般只需要存一份即可如果存文件的话会消耗空间存从文件一般是存图片的时候有的时候需要大图和小图可以用这种方式 storage_upload_slave_by_filename group_namegroup1, remote_filenameM00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234_big.txt source ip address: 10.0.0.120 file timestamp2024-06-26 13:55:29 file size22 file crc32670579793 example file url: http://10.0.0.120/group1/M00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234_big.txt [rootfastdfs01 ~]# 切换到存储目录查看文件上传情况 2.6.3 FastDFS 生成的文件目录结构及名称示例 2.6.4 测试文件下载 [rootfastdfs01 ~]# fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt [rootfastdfs01 ~]# ll 总用量 12 -rw-r--r-- 1 root root 22 2024-06-26 13:51 aa.txt -rw-------. 1 root root 1354 2024-02-18 16:37 anaconda-ks.cfg -rw-r--r-- 1 root root 22 2024-06-26 20:39 CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt drwxr-xr-x 4 root root 116 2024-06-26 10:43 soft2.6.5 测试文件删除 fdfs_delete_file /etc/fdfs/client.conf group1/要删除的文件路径 # 测试删除从文件 [rootfastdfs01 ~]# fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/CgAAeGZ7rVGAF-MQAAAAFif4PFE234_big.txt [rootfastdfs01 ~]# ll /opt/fastdfs/storage/files/data/00/00/ 总用量 8 -rw-r--r-- 1 root root 22 2024-06-26 13:55 CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt -rw-r--r-- 1 root root 49 2024-06-26 13:55 CgAAeGZ7rVGAF-MQAAAAFif4PFE234.txt-m2.6.6 注意 没有搭建集群默认只有一个组 group1后缀名包含-m 的为属性文件(meta)在 Linux 中并没有磁盘一说,是虚拟的 3、分布式文件系统 FastDFS的 HTTP 访问 3.1 概述 ​ 在文件上传的时候上传成功的信息中有提示我们可以通过某个路径去访问上传的文件但是我们直接访问这个路径却不可以那么已经上传到FastDFS文件系统中的文件我们如何在浏览器中访问呢 ​ FastDFS 提供了一个Nginx扩展模块利用该模块我们可以通过Nginx访问已经上传到FastDFS上的文件 3.2 前期准备工作 3.2.1 将 Fastdfs 的 Nginx 扩展模块源代码上传到 Linux 上 3.2.2 解压下载下来的 fastdfs-nginx-module-master.zip 文件 unzip fastdfs-nginx-module-master.zip3.3安装 Nginx 并且添加 fastDFS 模块 ​ 因为这个模块必须在 Nginx 的安装的过程中才能添加所有我们需要重新安装一个nginx为了和原来已安装的 Nginx 进行区分我们把新安装的 Nginx 取名为 nginx_fdfs 3.3.1 将 Nginx 的 tar 包上传到 Linux 上 3.3.2 解压上传的 Nginx 文件 tar xf nginx-1.26.1.tar.gz3.3.3 切换至解压后的 Nginx 主目录执行配置操作 cd nginx-1.26.1 yum install pcre pcre-devel zlib zlib-devel -y ./configure --prefix/usr/local/nginx_fdfs --add-module/root/soft/fastdfs-nginx-module-1.20/src --prefix # 是指定nginx安装路径 --add-module # 指定fastDFS的nginx模块的源代码路径# 报错 -o objs/addon/src/ngx_http_fastdfs_module.o \/root/soft/fastdfs-nginx-module-master/src/ngx_http_fastdfs_module.c In file included from /root/soft/fastdfs-nginx-module-master/src/common.c:26:0,from /root/soft/fastdfs-nginx-module-master/src/ngx_http_fastdfs_module.c:6: /usr/include/fastdfs/fdfs_define.h:15:27: 致命错误common_define.h没有那个文件或目录#include common_define.h^ 编译中断。 make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] 错误 1 make[1]: 离开目录“/root/soft/nginx-1.26.1” make: *** [build] 错误 2# 解决 sed -i s#ngx_module_incs/usr/local/include#ngx_module_incs/usr/include/fastdfs /usr/include/fastcommon/#g /root/soft/fastdfs-nginx-module-1.20/src/config sed -i s#CORE_INCS$CORE_INCS /usr/local/include#CORE_INCS$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/#g /root/soft/fastdfs-nginx-module-1.20/src/config3.3.4 执行命令进行编译 make3.3.5 执行命令进行安装 make install3.3.6 以上安装 Nginx 的 FastDFS 扩展模块注意事项 我们知道Nginx 的安装需要 Linux 安装相关的几个库否则编译会出现错误这几个库分别是 gcc 编译器是否安装 检查是否安装yum list installed | grep gcc 执行安装yum install gcc -y openssl 库是否安装 检查是否安装yum list installed | grep openssl 执行安装yum install openssl openssl-devel -y pcre 库是否安装 检查是否安装yum list installed | grep pcre 执行安装yum install pcre pcre-devel -y zlib 库是否安装 检查是否安装yum list installed | grep zlib 执行安装yum install zlib zlib-devel -y yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel –y3.4FastDFS 的 Nginx 访问配置 3.4.1 拷贝mod_fastdfs.conf到/etc/fdfs/目录下 ​ 将/home/soft/fastdfs-nginx-module-master/src(自己实际存放 Nginx 扩展模块的目录)目录下的mod_fastdfs.conf 文件拷贝到 /etc/fdfs/目录下这样才能正常启动 Nginx cp /root/soft/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/3.4.2 修改 mod_fastdfs.conf 配置文件 vim /etc/fdfs/mod_fastdfs.conf ... base_path/opt/fastdfs/nginx_mod tracker_server10.0.0.120:22122 url_have_group_name true store_path0/opt/fastdfs/storage/files3.4.3 在/opt/fastdfs/目录下创建 nginx_mod 目录 mkdir -p /opt/fastdfs/nginx_mod3.4.4 配置 Nginx 的配置文件 vim /usr/local/nginx_fdfs/conf/nginx.conf ... location / { ... }# 拦截请求路径中包含 /group[1-9]/M0[0-9] 的请求用 fastdfs 的Nginx模块进行转发 location ~ /group[1-9]/M0[0-9] {ngx_fastdfs_module; }- ngx_fastdfs_module; # 这个指令不是Nginx本身提供的是扩展模块提供的根据这个指令找到FastDFS提供的Nginx模块配置文件然后找到Tracker最终找到Stroager3.5FastDFS 的 Nginx 访问启动与测试 3.5.1 启动带有 Fastdfs 模块的 Nginx [rootfastdfs01 conf]# /usr/local/nginx_fdfs/sbin/nginx -t ngx_http_fastdfs_set pid17683 nginx: the configuration file /usr/local/nginx_fdfs/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx_fdfs/conf/nginx.conf test is successful [rootfastdfs01 conf]# /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf ngx_http_fastdfs_set pid17698 [rootfastdfs01 conf]# ps -ef |grep nginx root 17699 1 0 21:57 ? 00:00:00 nginx: master process /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf nobody 17700 17699 0 21:57 ? 00:00:00 nginx: worker process root 17702 1291 0 21:57 pts/1 00:00:00 grep --colorauto nginx3.5.2 重启或启动 FastDFS 服务进程 fdfs_trackerd /etc/fdfs/tracker.conf restart fdfs_storaged /etc/fdfs/storage.conf restart3.5.3 上传一个文件进行测试验证 fdfs_test /etc/fdfs/client.conf upload /root/aa.txt3.5.4 在浏览器访问上传的文件 当遇到400错误检查配置/etc/fdfs/mod_fastdfs.conf中url_have_group_nametrue该配置表示访问路径中是否需要带有group1改为true表示路径中需要有group1 3.5.5 扩展 模拟大型网站用户头像的处理方式上传一张图片然后自己写一个 html 页面src指向上传的图片 3.5.6 FastDFS扩展模块执行流程 4、FastDFS 在 Java 项目中开发示例 4.1 在实际项目开发中FastDFS 提供的主要功能 upload上传文件download下载文件delete删除文件 4.2 FastDFS 文件系统的 Java 客户端 ​ FastDFS 文件系统 Java 客户端是指采用 Java 语言编写的一套程序专门用来访问 fastDFS文件系统其实就是一个 jar 包。 ​ 注意大家如果能连上 mvnrepository 上搜索到的用友云提供的 fastdfs-client那大家就下载那个 jar包使用如果连不上这个 jar 包需要我们自己来打 4.2.1 下载官方的源代码 从 https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master 上下载FastDFS 源代码到本地 4.2.2 解压 4.2.3 采用 maven 命令编译成 jar 安装到本地 maven 库 本地默认配置java环境变量和Maven环境变量没有的话需要自己下载配置 mvn clean install4.2.4 在 Java 程序中使用它提供的 API 来访问 FastDFS 文件系统 4.3文件上传功能的实现 4.3.1 需求 使用 Java 客户端编程操作 fastDFS 分布式文件系统上传本地文件到 FastDFS 服务器上 4.3.2 实现步骤 1 使用 IDEA 创建普通的 maven 项目不需要使用 2 在 pom.xml 文件中添加我们打包好的 FastDFS 本地仓库的jar 包FastDFS 的 java 客户端依赖 可以在这查看 jar 包里面的内容 3 拷贝源代码包中的 fdfs_client.conf 文件到 resources 目录下在里面主要配置 tracker 地址 4 编写代码进行上传测试 在 com.bjpowernode.fastdfs 包下创建 FastDFS 类在其中编写上传代码 package com.bjpowernode.fastdfs;import com.sun.deploy.util.SessionState; import org.csource.common.MyException; import org.csource.fastdfs.*;import java.io.IOException;public class FastDFSUtil {public static void main(String[] args) {upload();}/*** 文件上传*/public static void upload() {TrackerServer tsnull;StorageServer ssnull;try {//读取FastDFS的配置文件用于将所有的tracker的地址读取到内存中ClientGlobal.init(fastdfs.conf);TrackerClient tcnew TrackerClient();tstc.getConnection();sstc.getStoreStorage(ts);//定义Storage的客户端对象需要使用这个对象来完成具体的文件上传、下载和删除StorageClient scnew StorageClient(ts,ss);/*** 文件上传* 参数 1 为需要上传的文件的绝对路径* 参数 2 为需要上传的文件的扩展名* 参数 3 为文件的属性文件通常不上传* 返回一个string数组 这个数据对我们非常重要必须妥善保管建议存入数据库* 数组中的第一个元素为文件所在的组名* 数组中的第二个元素为文件所在的远程路径名称*/String[] result sc.upload_file(d:/Ansible.png,png,null);for (String str:result){System.out.println(str);}} catch (IOException e) {e.printStackTrace();} catch (MyException e) {e.printStackTrace();} finally {if (ss!null){try {ss.close();} catch (IOException e) {e.printStackTrace();}}if (ts!null){try {ts.close();} catch (IOException e) {e.printStackTrace();}}}} } 5 运行程序在 Linux 上FastDFS 存储目录下查看上传文件内容
http://www.zqtcl.cn/news/779336/

相关文章:

  • 企业网站建设58同城网站优化排名软件哪些最好
  • 最专业企业营销型网站建设企业宣传海报设计制作
  • 石家庄建站公司软件开发岗位介绍
  • 网站开发知识视频教程公司网站总感觉少点什么找什么人做
  • 做网站ps建立多大的画布网站排名监控工具
  • 烟台网站开发网站建设横幅标语
  • 微信公众号素材网站在线资源链接
  • 网站开发地图板块浮动国际重大新闻事件10条
  • 成品网站app开发wordpress宽度调整
  • 小型网站建设需要多少钱网站发布内容是否过滤
  • 网站如何推广运营漳平网站编辑价格
  • 海洋优质的网站建设企业微信下载官方网站
  • 十大免费ae模板网站wordpress 远程设置
  • 青岛网站的优化云南抖音推广
  • 做中英文版的网站需要注意什么如何偷别人dedecms网站的模板
  • 免费微网站制作最近三天发生的重要新闻
  • 网站优化网络推广seo编程软件python
  • 建设部网站官网合同免费申请网站永久
  • 遵化建设局网站哈尔滨网站制作公司价格
  • 科技因子网站建设方案河南网站推广优化公司
  • 什么网站了解国家建设的行情如何建设自己的php网站
  • 大连市平台网站外包公司和劳务派遣
  • 广州建网站公司排名嵌入式软件开发工程师工作内容
  • 计算机软件网站建设免费asp网站源码
  • 网站建设介绍ppt镇江网站搜索引擎优化
  • 珠海自助建站软件泉州网站开发
  • ios个人开发者账号多少钱拼多多seo怎么优化
  • 五金网站建设信息产业部备案网站
  • 网站被百度惩罚放弃互联网平台宣传推广方案
  • 自己怎么做网站首页自动app优化