Linux搭建图片服务器

简介: Linux搭建图片服务器

1 安装目的

为了商城可以动态的上传图片,目的是为了解决高并发,不用集群tomcat,造成混乱,用一个分布式文件系统即可FastDFS

2 下载地址

tracker和storage使用相同的安装包,下载地址:http://sourceforge.net/projects/FastDFS/https://github.com/happyfish100/FastDFS(推荐)

本文章下载:FastDFS_v5.05.tar.gz

3 FastDFS安装环境

详见:Linux安装vsftpd组件

FastDFS是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境。


安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++


3.1 安装libevent

FastDFS依赖libevent库,需要安装:


yum -y install libevent


3.2 安装libfastcommon

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。


将libfastcommonV1.0.7.tar.gz拷贝至/usr/local/下


cd /usr/local


tar -zxvf libfastcommonV1.0.7.tar.gz


cd libfastcommon-1.0.7


./make.sh


./make.sh install


注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。


要拷贝的文件如下:


20200402103751159.png


3.3 tracker编译安装

将FastDFS_v5.05.tar.gz拷贝至/usr/local/下


tar -zxvf FastDFS_v5.05.tar.gz


cd FastDFS


./make.sh


./make.sh install


安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下。


20200402103805809.png


4 配置

安装成功后进入/etc/fdfs目录:


20200402103820944.png


拷贝一份新的tracker配置文件:


cp tracker.conf.sample tracker.conf


修改tracker.conf


vi tracker.conf


base_path=/home/yuqing/FastDFS  


改为:


base_path=/home/FastDFS


5 启动

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart


启动的日志显示先停止5619进程(实际环境不是5619)再启动,如下图:


20200402103846844.png


注意:如果没有显示上图要注意是否正常停止原有进程。


5.1 设置开机自动启动。

[root@tracker FastDFS]# vim /etc/rc.d/rc.local

将运行命令行添加进文件:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart


5.2 FastDFS--storage安装

在192.168.101.3上安装storage。


5.3 安装libevent

同tracker安装


5.4 安装libfastcommon

同tracker安装。


5.5 storage编译安装

同tracker编译安装。


5.6 配置

安装成功后进入/etc/fdfs目录:


20200402104003931.png


拷贝一份新的storage配置文件:


cp storage.conf.sample storage.conf


修改storage.conf


vi storage.conf


group_name=group1


base_path=/home/yuqing/FastDFS改为:base_path=/home/FastDFS


store_path0=/home/yuqing/FastDFS改为:store_path0=/home/FastDFS/fdfs_storage


#如果有多个挂载磁盘则定义多个store_path,如下


#store_path1=.....


#store_path2=......

tracker_server=192.168.101.3:22122   #配置tracker服务器:IP


#如果有多个则配置多个tracker


tracker_server=192.168.101.4:22122


5.7 启动

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart


启动的日志显示先停止8931进程(实际环境不是8931)再启动,如下图:


2020040210403776.png


注意:如果没有显示上图要注意是否正常停止原有进程。


5.8 设置开机自动启动。

[root@storage1 FastDFS]# vim /etc/rc.d/rc.local

将运行命令行添加进文件:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart


6 上传图片测试

6.1 通过fdfs_test程序

FastDFS安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作。


修改/etc/fdfs/client.conf


base_path=/home/fastdfs


tracker_server=192.168.101.3:22122


使用格式:


/usr/bin/fdfs_test 客户端配置文件地址  upload  上传文件


比如将/home下的图片上传到FastDFS中:


/usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/tomcat.png


http://192.168.101.3/group1/M00/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png就是文件的下载路径。


对应storage服务器上的


/home/fastdfs/fdfs_storage/data/00/00/wKhlBVVY2M-AM_9DAAAT7-0xdqM485_big.png文件。


由于现在还没有和nginx整合无法使用http下载。


6.2 通过java Client API

完整的测试方法参考测试源代码。

public class FastdfsClientTest {
  //客户端配置文件
  public String conf_filename = "F:\\workspace_indigo\\fastdfsClient\\src\\cn\\itcast\\fastdfs\\cliennt\\fdfs_client.conf"; 
    //本地文件,要上传的文件
  public String local_filename = "F:\\develop\\upload\\linshiyaopinxinxi_20140423193847.xlsx";
//上传文件
    @Test 
    public void testUpload() { 
      for(int i=0;i<100;i++){
        try { 
            ClientGlobal.init(conf_filename); 
            TrackerClient tracker = new TrackerClient(); 
            TrackerServer trackerServer = tracker.getConnection(); 
            StorageServer storageServer = null; 
            StorageClient storageClient = new StorageClient(trackerServer, 
                    storageServer); 
            NameValuePair nvp [] = new NameValuePair[]{ 
                    new NameValuePair("item_id", "100010"), 
                    new NameValuePair("width", "80"),
                    new NameValuePair("height", "90")
            }; 
            String fileIds[] = storageClient.upload_file(local_filename, null, 
                    nvp); 
            System.out.println(fileIds.length); 
            System.out.println("组名:" + fileIds[0]); 
            System.out.println("路径: " + fileIds[1]); 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } catch (Exception e) {
      e.printStackTrace();
    } 
      }
    }
}

7 运行效果

详见:nginx的安装及使用

之后后面补上连接即可

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
25天前
|
监控 Linux Shell
|
10天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
30 7
|
13天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
16天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
33 0
服务器linux!!!
|
18天前
|
人工智能 安全 Linux
|
20天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
87 3
|
23天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
6天前
|
网络协议 安全 Linux
Linux 上设置自己的公共时间服务器
Linux 上设置自己的公共时间服务器
18 0
|
18天前
|
Linux
Linux 修改服务器时间
【10月更文挑战第27天】Linux 修改服务器时间
43 0
|
21天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息

热门文章

最新文章