如何免费搭建自己的图片服务器 Linux系统+FastDFS+Nginx

thinkphp6加锁 thinkphp6中使用Redis锁的方式是通过调用Redis的SET命令实现的。thinkphp6中使用文件锁的方式是通过调用PHP的flock函数实现的。在thinkphp6中,加锁的方式有文件锁和Redis锁两种,可以根据实际应用场景选择合适的加锁方式。上面的代码中,$lockFile是要锁定的文件名,LOCK_EX表示要进行独占锁定,LOCK_NB表示在锁定失败时不要阻塞等待锁。thinkphp6中提供了两种加锁的方式,分别是文件锁和Redis锁。value是要写入的值,NX表示只有当。 阅读详情

在制作网站、小程序或者APP时,肯定离不开图片的,那么这些图片存放在什么位置?怎么存放?又如何展示呢,那么,这篇文章手把手带你搭建一台属于自己的图片服务器。

 

话不多说,上号,不对,是上代码:

 

所需工具:Linux系统+FastDFS+Nginx

 

1.依赖环境下载

系统: vagrant(centos7)

  • yum install -y  gcc-c++  #需要依赖gcc

  • yum install -y  pcre  #用于支持rewrite模块   pcre-8.32-17

  • yum  install -y  libevent  #FastDFS依赖libevent库 libevent-2.0.21-4.el7.x86_64

  • yum  install -y  zlib zlib-devel    #用于支持gzip模块 zlib-1.2.7-17.el7.x86_64

  • libfastcommon-master.zip   #libfastcommon包含了FastDFS运行所需要的一些基础库https://github.com/happyfish100/libfastcommon/releases

  • fastdfs-nginx-module-master.zip  # https://codeload.github.com/happyfish100/fastdfs-nginx-module/zip/master

  • FastDFS版本:fastdfs-5.11.zip  #https://github.com/happyfish100/fastdfs/archive/V5.11.zip

  • Nginx版本:nginx-1.14.tar.gz : #官网下载: http://nginx.org/en/download.html

2.安装libfastcommon

unzip libfastcommon-1.0.39.zip  mv libfastcommon-1.0.39 /usr/local/libfastcommoncd /usr/local/libfastcommon/./make.sh           #编译./make.sh install   #安装# 检查确认/usr/lib64  和 /usr/lib 目录下都生成了 libfastcommon.so (有些版本可能/usr/lib下不会生成)ls /usr/lib64  | grep libfastcommon.so  ls /usr/lib  | grep libfastcommon.so

3.安装tracker

cd /downloadunzip  fastdfs-5.11.zip mv fastdfs-5.11 /usr/local/FastDFScd /usr/local/FastDFS/./make.sh && ./make.sh install  #编译之后接着进行安装#确认安装成功,没有报错后,拷贝配置文件到/etc/fdfscp /usr/local/FastDFS/conf/* /etc/fdfs/#,进入/etc/fdfs 目录, 如果没有tracker.conf就拷贝一份tracker.conf.sample 去掉samplecp tracker.conf.sample track.conf
#配置tracker.conf vim track.conf  # 修改以下配置#===============base_path=/home/fastdfs  #基础目录,以后的data 和日志目录都会放在此目录下http.server_port=80 #配置http服务端口,这个端口跟后面nginx的监听端口对应
mkdir /home/fastdfs
#启动tracker,运行如下命令/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart#检查是否启动成功:默认端口22122ps -ef | grep fdfs  #检查/home/fastdfs下是否生成data / logs 两个目录ls  /home/fastdfs/

4.安装storage

cd /etc/fdfs #如果没有storage.conf  拷贝一份storage.conf.sample 命名为storage.confcp storage.conf.sample  storage.conf#配置storage.confvi storage.conf  #修改如下配置#===========================group_name=group1 #配置组名,同一个组的storage 互为备份base_path=/home/fastdfs #基础目录#store存放文件的位置(store_path), 可以配置多个, 记得创建路径store_path0=/home/fdfs_storage #如果有多个挂载磁盘则定义多个store_path,如下#store_path1=.....#store_path2=......
#配置tracker服务器:IP,阿里云服务器如果需要外部访问请配置公网ip, 不要使用私有iptracker_server=192.168.33.111:22122#如果有多个tracker则配置多个tracker#tracker_server=192.168.33.112:22122#配置http端口http.server_port=80#==========完===========#创建 /home/fdfs_storage 目录mkdir -p /home/fdfs_storage#启动storage/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart#查看启动是否成功fdfs_monitor /etc/fdfs/storage.conf   #查看fdfs状态ps -ef | grep fdfs#查看目录是否创建,/home/fdfs_storage/data 应该会自动生成256个文件夹ls   /home/fdfs_storage/data

5.测试上传文件

cd /etc/fdfscp client.conf.sample  client.confvim client.conf  #修改如下配置#=================base_path=/home/fastdfstracker_server=192.168.33.111:22122#=======完========#准备一张图片进行测试/usr/bin/fdfs_test /etc/fdfs/client.conf upload  /download/fengjing.jpg#一切正常的话会返回图片地址等信息example file url: http://192.168.33.111/group1/M00/00/00/wKghb1vqf7GAIdYqAAJo1aj_C9s003_big.jpg#检查文件是否存在(文件名被存放在/home/fdfs_storage/data/00/00对应的目录中),如果存在即是保存  OK,此时还无法使用http下载cd  /home/fdfs_storage/data/00/00  #查看是否存在wKghb1vqf7GAIdYqAAJo1aj_C9s003_big.jpg

6.FastDFS 和Nginx整合

#解压 fastdfs-nginx-module 到 /usr/local目录下;cd /downloadunzip  fastdfs-nginx-module-master.zip mv fastdfs-nginx-module-master  /usr/local/fastdfs-nginx-modulecd /usr/local/fastdfs-nginx-module/src
#修改config文件# 将文件中的所有 /usr/local/ 路径改为 /usr/ , #如果后面步骤中编译nginx报错把下面两项做以下修改ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
#拷贝配置文件到/etc/fdfscp mod_fastdfs.conf  /etc/fdfs/ #修改 /etc/fdfs/mod_fastdfs.conf ; vi /etc/fdfs/mod_fastdfs.conf#======修改以下内容========base_path=/home/fastdfs  #保存日志的路径tracker_server=192.168.33.111:22122  #track_server配置的服务端口url_have_group_name=true        #url中是否包含group名称store_path0=/home/fdfs_storage  #指定文件存储路径(必须和storage.conf配置相同)
ls  /usr/lib | grep libfdfsclient.sols  /usr/lib64 | grep libfdfsclient.so
mkdir -p /var/temp/nginx/client
tar -zxvf nginx-1.14.0.tar.gz -C /usr/local/#进入解压目录, 日志目录可自己定义,主要是add-modoulecd /usr/local/nginx-1.14.0#添加模块./configure \--prefix=/usr/local/nginx \--add-module=/usr/local/fastdfs-nginx-module/src
#在nginx1.14.0目录下执行make && make install

vi /usr/local/nginx/conf/nginx.conf#======添加配置=========== server {              listen 80;              server_name 192.168.33.111;              location /group1/M00/ {                  root /home/fdfs_storage/data;                  ngx_fastdfs_module;              }         }
 /usr/local/nginx/sbin/nginx 
#检查是否启动成功,不成功就去查看错误日志/var/log/nginx/error.logps -ef | grep nginx
systemctl stop firewalld.service/usr/bin/fdfs_test /etc/fdfs/client.conf upload  /download/123.jpgexample file url: http://192.168.33.111/group1/M00/00/00/wKghb1vqf7GAIdYqAAJo1aj_C9s003_big.jpghttp://1192.168.33.111/group1/M00/00/00/wKghb1vqf7GAIdYqAAJo1aj_C9s003_big.jpg#查看nginx 日志可以看到访问记录tail -f  -n 100 /var/log/nginx/access.log

7.项目中如何使用fastdfs

<dependency>            <groupId>net.oschina.zcx7878</groupId>            <artifactId>fastdfs-client-java</artifactId>            <version>1.27.0.0</version> </dependency>
配置文件: fdfs.conf# 连接tracker服务器超时时长connect_timeout = 10# socket连接超时时长network_timeout = 30# 文件内容编码charset = UTF-8# tracker服务器端口http.tracker_http_port = 80http.anti_steal_token = no#密码http.secret_key = 123456# tracker服务器IP和端口(可以写多个)tracker_server = 192.168.33.111:22122



package com.zc;import org.csource.fastdfs.*;
public class FastdfsTest {
    public static void main(String[] args) throws Exception {
        //1、把FastDFS提供的jar包添加到工程中        //2、初始化全局配置。加载一个配置文件。        ClientGlobal.init("fdfs.conf");        //3、创建一个TrackerClient对象。        TrackerClient trackerClient = new TrackerClient();
        //4、创建一个TrackerServer对象。        TrackerServer trackerServer = trackerClient.getConnection();        //5、声明一个StorageServer对象,null。        StorageServer storageServer = null;        //6、获得StorageClient对象。        StorageClient storageClient = new StorageClient(trackerServer, storageServer);
        //7、直接调用StorageClient对象方法上传文件即可。        String[] result = storageClient.upload_file("/Users/zc21/Downloads/img.jpg", "jpg", null);        StringBuilder sb = new StringBuilder("http://192.168.33.111/");        sb.append(result[0]).append("/").append(result[1]);        System.out.println("图片访问地址: " + sb.toString());    }}

这样,就能实现上传一张图片,返回一个图片地址,直接访问这个地址,即可看见这张图片,图片的大小和位置,可以用css+js控制

FTP服务器安装+NGINX搭建简单的图片服务器(Linux) ftp+nginx实现简单的图片服务器 最近在做个人网站,设计到图片的上传和保存,于是想做一个专门存图片的服务器。以前用过一个tomcat web服务器做图片的服务器,但缺点就是必须和部署系统在同一台服务器下。现在想直接通过代码将图片上传到另一台服务器,再将图片访问路径返回保存到数据库,直接通过url访问。 本教程我不会阐述每条配置的意义,只是记录一下搭建操作。 环境:Linux centos8 参考文章: https://developer.aliyun.com/article/773249?spm=51 阅读详情

相关推荐

深入解析 MinIO:2026 年自建对象存储的首选,轻量、高性能、S3 兼容

摘要: MinIO是一款开源、高性能的分布式对象存储系统,兼容Amazon S3协议,适用于图片、视频、日志等非结构化数据存储。其核心优势包括:完全兼容S3 API、极强性能(支持大文件高速读写)、高可用纠删码技术(节省空间)、极简部署(支持Docker/K8s)及云原生友好。典型应用场景涵盖Web资源存储、大数据/AI数据湖、备份归档及私有云部署。通过Docker可快速搭建开发环境,Java等语言易集成。相比FastDFS和公有云存储,MinIO在成本、扩展性和兼容性上更具优势,2026年仍是企业自建对象

郭宝的博客 439

图片服务器

图片服务器项目及测试

xy199931的博客 1893

带后台的个人博客系统搭建:Spring Boot+Vue+MySQL实战

个人博客系统是互联网内容创作的基础应用形态,其核心在于内容管理与展示的分离。Spring Boot作为Java生态主流的后端框架,搭配Vue前端技术栈,能够构建出前后端分离、功能完备的带后台管理的博客平台。这类系统不仅实现了数据的自主可控与页面的个性化定制,还具备扩展性强的技术价值,广泛应用于个人知识沉淀、技术分享、作品集展示等场景。本文从系统架构、后台功能实现到服务器部署,完整梳理了基于Spring Boot+Vue+MySQL的博客系统搭建过程,并针对登录认证、Markdown渲染、Nginx反向代理等

weixin_42462474的博客 272

图片存储解决方案之一使用nginx搭建图片服务器(一)

图片存储解决方案之一使用nginx搭建图片服务器(一)

m0_37998377的博客 8442

双目相机立体匹配算法概述(含Python代码)

立体匹配任务是计算机视觉中的一个重要问题,旨在从一对具有相同场景的图像中估计每个像素的视差(disparity)。本文对现有的传统算法和深度学习算法进行了综述,以便于各位选择合适的立体匹配算法用于深度估计或三维建模。

m0_59257547的博客 8291

Nvidia Tesla A100 驱动安装方法

Nvidia Tesla A100 驱动安装方法 遇到的问题:以前安装tesla系列、geforce系列等gpu 驱动的时候,只需执行nvidiaxxxx.run驱动包或者安装nvidiaxxxx.rpm包即可,但遇到新的GPU Nvidia Tesla A100的时候,安装完驱动似乎不起作用,找了半天资料,原来需要以下步骤才可以使用;

qq_24343177的博客 2万+

[项目]图片服务器

目录1. 项目背景2.项目模块划分2.1数据存储模块2.2服务器API3. 总结4. 扩展 1. 项目背景   现在很多网页都可以见到图片上传功能,我们上传一张本地图片后,网页就会显示我们所上传的图片,比如博客、个人信息提交页面等等。那么这背后的原理是什么呢?   其实当我们浏览网页的时候,本质上是从对端服务器获取文档,浏览器在获得这些文档之后进行解析和渲染,呈现给我们用户面前的就是绚丽多彩的页面...

CyanWang1的博客 1320

AD936x Evaluation Software 实战配置指南:从寄存器设置到滤波器优化

本文提供AD936x Evaluation Software的实战配置指南,详细解析从工程创建、RF向导与时钟模块配置,到数字滤波器优化、数字接口设置及增益控制的完整流程。重点分享寄存器设置、滤波器系数权衡及PLL稳定技巧等核心要点,帮助开发者高效配置AD9361/AD9363射频芯片,快速应用于SDR、基站等场景。

perl8的博客 696

服务器配置篇汇总(linux)+(jdk)+(tomcat)+(mysql)+(nginx)+(redis)+(fastDFS)+(mycat)+(git)+(maven) --菜鸟小回

项目上线 先创建安全组规则(开放端口) 一、jdk 创建:mkdir -p /opt/java 进入:cd /opt/java 上传: 解压:tar -zxvf jdk-8u141-linux-x64.tar.gz 编辑:vi /etc/profile 配置环境变量: //进编辑模式 i //文档最后添加: export JAVA_HOME=/opt/java/jd...

菜鸟小回的博客 965

专有钉钉小程序(浙政钉)开发搭建流程总览

最近公司有一个项目要做浙政钉,让我来负责做。靠,我一脸懵,开发了两年多不知道浙政钉是啥,感觉我眼界还是低了。然后就去百度、同事问了一圈才知道就是个钉钉小程序嘛,然后发布到浙政钉上了。就搭建项目跑起来我都肥了很多事,中间走了很多坑。正好领导让我写《钉钉小程序前端开发流程》,这想着也写个博客吧。下面就是整个流程及我所遇到的坑!

m0_53910290的博客 6355

嵌入式定点PID控制器:mrm-pid极简实现与实时控制实践

PID控制器是自动控制领域的基础算法,其核心在于比例、积分、微分三环节的协同调节。在资源受限的嵌入式系统中,传统浮点PID易受时序抖动、内存分配不确定性及FPU依赖影响,难以满足毫秒级确定性响应需求。定点PID通过整数运算替代浮点计算,显著提升执行周期稳定性与跨平台兼容性,成为电机控制、传感器补偿等实时场景的关键技术路径。mrm-pid库以位置式结构、int32_t增益参数、int64_t积分累加器和无动态内存设计,实现了超低开销(12–28 CPU周期)与完全可审计的闭环内核,天然适配Cortex-M系列

weixin_31659095的博客 570

FastDFS:高性能分布式文件系统深度解析

FastDFS(Fast Distributed File System)是一款由国内开发者余庆创建的开源轻量级分布式文件系统,专为互联网应用设计,特别擅长处理海量小文件和大文件的存储需求。它采用简洁高效的两层架构,由Tracker服务器和Storage服务器两大核心组件构成,实现了高可用性、可扩展性和卓越的性能表现,广泛应用于图片分享、在线视频、文档管理等互联网场景。 ## FastDFS项目...

gitblog_00915的博客 882

CESM2 实验笔记

文章目录1. 重新启动1.1 关于重启文件2. RUN_TYPE 初始化运行方式startupbranchhybrid3. branch 或者 hybrid运行的示例4. 其他声明5. 关于RESUBMIT 1. 重新启动 参考: https://bb.cgd.ucar.edu/cesm/threads/how-to-restart-cesm2-1-3-fhist-from-a-backup.5245/#post-36275 适用情况:模型运行因时间不足或其它原因中断,需要继续运行 方法1:将CONTIN

qq_38607066的博客 1万+

缓存、文件系统配置

.linux上开启redis:#### 2.使用RDM(Windows)连接redis(Linux) - Linux上开启Redis服务,查看端口是否开启 查询防火墙是否允许 6379 端口的 TCP 连接:yes,表示开启;no表示未开启。02.文件 服务器分类: - 传统服务器存储FastDFS (免费) - OSS (付费) - GridFS FastDFS分布式文件系统 .FastDFS 上传 Nginx开启04.云存储OSS(阿里) 配置到公网: - 内网穿透 ,natppp/花生壳/ngrok

m0_62425768的博客 1141

Windows/Linux双平台指南:3种方法快速释放被占用的GPU内存(含任务管理器替代方案)

本文详细介绍了在Windows和Linux双平台下快速释放被占用GPU内存的3种方法,包括任务管理器替代方案。从基础操作到高阶技巧,帮助用户彻底解决GPU内存驻留问题,提升计算资源利用率。特别适用于深度学习开发者和服务器管理员处理显存泄漏等常见问题。

j0k1l2m3n的博客 259

AF自动对焦 CDAF PDAF

前言 主流的AF: CDAF, PDAF, laser assist AF(这个只是辅助,在微距或者拍摄纹理不明显的场景下好用)。 1.cdaf原理 CDAF的大致原理就是检测图像锐度或者等价于锐度的参数,不断推动马达寻找最清晰点实现合焦或者对焦。如下图: 缺点:对焦准确,速度慢,由于camera帧率,cpu处理速度,马达反映时间问题不能实时对焦运动物体。 2.pdaf原理 计算相位差,将相位差转换为相位差和af code的关系....

camerall 1万+

基于Spark的分布式智能电影推荐系统完整实战指南

在信息爆炸的时代,用户面对海量电影内容往往感到选择困难。传统推荐系统要么依赖简单规则,要么无法处理大规模用户行为数据,导致推荐结果不够精准。本文将介绍一个基于Spark的分布式智能电影推荐系统,它融合了大数据处理与机器学习技术,能够为用户提供个性化的电影推荐服务。 ## 为什么需要智能推荐系统? 传统电影推荐通常基于热门排行或简单分类,无法真正理解用户偏好。随着用户行为数据的积累,基于协同过滤

gitblog_00022的博客 488

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

KKFileView系统配置实战:从单机到集群的性能调优与安全加固

文件在线预览是现代Web应用中的常见需求,其核心原理是将Office、PDF、图片等格式的文件通过服务端转换,以HTML或图片形式在浏览器中直接展示。这项技术的关键价值在于无需用户安装本地软件即可实现跨平台文档查看,极大提升了协作效率与用户体验。在工程实践中,一个稳定、高性能的预览服务需要解决格式兼容性、并发处理、缓存策略和文件源适配等挑战。KKFileView作为基于Spring Boot的开源解决方案,通过其可扩展的配置体系,允许开发者针对不同业务场景进行深度定制,例如通过集成Redis实现分布式缓存以

weixin_30697239的博客 751

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

软考-系统分析师-备考笔记

根据学习视频和一些资料整理的软考系统分析师考试笔记,2025年下半年通关

提子同学是我 1027

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

CnOpenData 线上招聘网站信息数据

CnOpenData线上招聘网站信息数据库是一个覆盖中国主流招聘平台、时间跨度长、更新频率高的劳动力市场需求侧大数据集合。本数据库汇集了,为学术界和业界提供了一扇实时观察中国劳动力市场动态的窗口。

CnOpenData_wj的博客 2592

图片服务器(图床)的设计与实现

图片服务器(图床)的设计与实现

weixin_53715567的博客 1355

基于win10环境搭建图片服务器的两种方式

这几天接到一种需求,需要在window环境搭建图片服务,去网上搜一下,最终想出两种方式一种是Nginx方式 ,一种是公司常用的iis服务方式,这里简单记录一下。

weixin_73368873的博客 1611

FastDFS搭建图片服务器

服务器规划 服务器名称 IP地址和端口 备注 fastdfs-tracker *:22122 跟踪服务器/调度服务器 fastdfs-storage *:23000 存储服务器 一、安装系统组件 yum install gcc -y 二、安装fastdfs 1、创建图片服务器存储目录 mkdir -p /data/image 2、下载FastDFS依赖包libfastcommon并安装 wget https://codeload.gi.

icanflying的博客 5611

linux 做家用照片服务器,linux系统搭建nginx图片服务器

1、官网下载nginx2、依赖环境准备安装gccyum install gcc-c++安装其他依赖yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel3、编译、安装将nginx的源码包下载到linux系统上:wget http://nginx.org/down...

weixin_28917337的博客 502

nginx搭建图片服务器

前言 前几天公司外包软件里所用的第三方图片存储服务器,被外包恶意拉黑,导致小程序所需要访问的网络图片全部裂开无法访问,但是项目已经上线,为了更快的恢复程序使用,我用紧会的nginx在服务器上搭建了一个服务器. 正文 简介 在linux centos7系统中,搭建图片上传服务器。 LINUX安装nginx详细步骤: 1.安装依赖包 //一键安装上面四个依赖 yum -y install gcc zl...

weixin_44422857的博客 2981
上一篇: 如何优雅的使用线程池
下一篇: idea汉化教程
yz_wlkj
博客等级 码龄8年 22粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值