inginx搭建文件上传下载服务器

纯nginx,搭建文件上传、下载服务器 通过nginx做资源下载站,很多运维小伙伴应该是比较熟悉的了。不过用nginx做webdav,可能还有小伙伴不是很清楚。 阅读详情

发现了这篇blog,准备使用nginx来实现文件上传和下载的功能。下面把实现步骤记录下来,中间有很多坑。

参考文档:

https://www.cnblogs.com/lidabo/p/4171515.html (good example)

http://www.grid.net.ru/nginx/upload.en.html

https://github.com/hongzhidao/nginx-upload-module/blob/master/README.md

http://www.codeweblog.com/文件上传从tornado迁移到nginx-upload-module/

https://www.cnblogs.com/zhanchenjin/p/5076466.html (good example analysis format)

安装要求:

1. centos7.x,

2. 系统安装了必要的编译工具

3. 下载的代码都放在/root/thb

4.本次nginx用1.13.9,

构建步骤:

1、下载nginx

# cd /root/thb; wget  http://nginx.org/download/nginx-1.13.9.tar.gz  

# tar zxvf nginx-1.13.9.tar.gz

2、下载nginx upload module

下载地址: https://github.com/hongzhidao/nginx-upload-module

别用 http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz,它太老了。

把下载后的代码都要解压到  /root/thb下面。

3、下载nginx-upload-progress-module

# git clone https://github.com/masterzen/nginx-upload-progress-module.git

# mv nginx-upload-progress-module /root/thb

4. 如果安装了nginx,则要先卸载目前的版本。

  # yum remove nginx  

5. 安装必要的编译工具

# yum -y install gcc gcc-c++ autoconf automake gd gd-devel zlib zlib-devel openssl openssl-devel pcre-devel 

6、编译nginx

# cd /root/thb/nginx-1.13.9; 
./configure  --with-debug --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --add-module=/root/thb/nginx-upload-module-master --add-module=/root/thb/nginx-upload-progress-module --with-stream --with-http_image_filter_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-file-aio --with-cc-opt='-Wno-format-security -Wno-unused-but-set-variable -Wno-unused-result -D NGX_HAVE_OPENSSL_MD5_H=1 -D NGX_OPENSSL_MD5=1 -D NGX_HAVE_OPENSSL_SHA1_H=1 -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2  -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

注: 可能出现的编译错误及其解决方案.

0:编译 nginx-upload-module时候,如果出现 md5.h找不到的话,则必须确保你安装了openssl,且确保你的编译选择用了如下的选择(直接用上面的配置就OK)

-D NGX_HAVE_OPENSSL_MD5_H=1 -D NGX_OPENSSL_MD5=1 

1; 出现如下错误:./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

 安装pcre注意使用高版本的, 低版本的一样会出现上面error

我使用的版本是pcre-8.38。安装过程略。安装好pcre后,再执行上面的步骤。 

 # yum install -y pcre-devel

2:出现如下错误:./configure: error: the HTTP image filter module requires the GD library.
You can either do not enable the module or install the libraries.

因为HttpImageFilterModule模块需要依赖gd-devel的支持, 安装gd-devel ,命令如下:

# yum install gd-devel

7. 构建nginx

# make 

如果构建nginx出现错误:

error: no member named 'to_write' in 'ngx_http_request_body_t',在stack overflow有解决方案stackoverflow

具体原因是我们下载的nginx_upload_module-2.2.0.tar.gz不支持nginx 1.4+版本,

https://github.com/hongzhidao/nginx-upload-module这个支持最新的nginx版本

6、下载wget https://github.com/hongzhidao/nginx-upload-module/archive/master.zip

7、构建、安装nginx

  # make install

说明,上面执行完毕后,nginx会安装到 /usr/sbin/, 配置文件在 /etc/nginx下面。

如果在CentOS要以服务化来管理nginx,则还要执行下面的步骤

8. CentOS的服务化管理nginx 

# vi /lib/systemd/system/nginx.service, 内容如下。

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# systemctl enable nginx.service
# systemctl start nginx
# systemctl status nginx

到此为止,nginx就可以运行了。下面说如何配置文件上传功能。

9、可以使用demo测试上传文件的功能了

http://www.grid.net.ru/nginx/upload.en.html

https://github.com/hongzhidao/nginx-upload-module/blob/master/README.md

10. 上传进度获取在下面的这个blog说明

https://blog.youkuaiyun.com/bigtree_3721/article/details/79879072

文件下载和上传功能服务器搭建配置 三种实现文件下载和上传功能服务器搭建配置 1.nginx 2.miniserve 3.nodejs 阅读详情

相关推荐

SpringBoot+Nginx实现文件上传和下载功能(上)

该文章主要讲述nginx实现文件上传和下载功能的环境配置,如需安装Nginx请前往——Nginx的安装配置以及常用命令_czxboys的博客-优快云博客 。 2、修改配置 配置修改如下: 保存并退出,输入,重新加载nginx服务。 安装lrzsz的传送门:Linux-常用软件安装(1)_czxboys的博客-优快云博客上传完图片,可以打开浏览器输入虚拟机IP+端口号+/upload/images/图片名字,如,图片显示即配置成功,如果访问403错误的话,但是访问成.........

czxboys的博客 2004

Karma の Blog

入口karma520.com

Dreamer. 303

Nginx 上传/下载服务器搭建

实现nginx服务器的上传下载服务,傻瓜式2分钟环境搭建。

m0_71540099的博客 1361

Nginx 配置服务器文件上传与下载

最近在做项目中需要给前端提供文件下载链接,所以借着机会搭建了基于Nginx的文件服务器,特此记录便于日后查阅。 1、配置文件 需要修改 nginx.conf 配置文件(内网地址:10.12.1.215、外网地址:113.98.58.42),内容如下: user nginx; worker_processes auto; error_log /var/log/nginx/error.log;...

专注基础架构领域 9188

Nginx搭建文件下载服务器

1、修改配置文件: 2、修改好配置文件后,创建相对应的目录3、重启nginx,访问页面http://localhost:80/注意:如果访问页面报403的错误,这个是因为权限的问题,首先这里我们修改了启动nginx的用户为root,root的最高权限账户,所以不存在用户权限的问题,那么这里的权限问题就是SELINUX导致的,把它禁用了就可以了。方法是修改配置文件"/etc/selinux/config",如下:A服务器访问B服务器目录下的文件1、两台服务器都需要安装nginx,且nginx配置如下:A服

wd520521的博客 8266

Apache Doris集群IP变更急救指南:用Docker容器+priority_networks快速恢复FE/BE节点

本文详细介绍了Apache Doris集群在IP变更情况下的应急处理方案,通过Docker容器和priority_networks配置快速恢复FE/BE节点。文章提供了从容器化环境构建、元数据迁移到生产环境切换的全流程指南,帮助运维团队在30分钟内完成集群恢复,显著减少停机时间。

pink7的博客 114

Nginx做文件服务器 支持上传和下载

文章目录Abstract可选步骤 移除已安装的nginx module从源码安装nginx 并加载上传模块配置支持下载支持可选的配置用户名密码访问下载配置运行截图配置上传支持上传测试如何上传后的文件是正确的名字呢?参考 Abstract 把nginx作为一个简单的http服务器. 因为可能涉及到加载额外的module 所以我们会从源码开始编译. 可选步骤 移除已安装的nginx module 这个步骤是可选的 如果在后面按照源码安装nginx后 加载其他module有冲突时:类似于下面的错误: nginx

scugxl的专栏 2万+

保姆级教程:用STM32CubeMX给STM32F407配置RTC秒中断,并解决掉电时间丢失问题

本文详细介绍了如何使用STM32CubeMX为STM32F407配置RTC秒中断,并解决掉电时间丢失问题。通过硬件原理与软件配置的双视角解析,帮助开发者实现精确计时与时间持久化,适用于物联网设备和工业控制器等场景。

weixin_42519733的博客 136

容器中使用ngnix搭建支持上传下载的文件服务器

一、安装nginx容器 为了让nginx支持文件上传,需要下载并运行带有nginx-upload-module模块的容器: sudo podman pull docker.io/dimka2014/nginx-upload-with-progress-modules:latest sudo podman -d --name nginx -p 83:80 docker.io/dimka2014/nginx-upload-with-progress-modules 该容器同时带有nginx-upload-mo

witton的专栏 3490

U8二次开发CO-基于Net8调用COM对象

本文章介绍的U8二次开发CO技术,就是基于微软COM组件技术,使用微软开源的编程框架Net6/7/8/9来调用U8的COM组件,完成基本的登录认证,工作流处理,数据库操作等。

pccai的博客 5500

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

Linux下利用nginx搭建文件服务器

1.安装nginx 安装教程:https://www.cnblogs.com/sunny1009/p/11411673.html 2.配置nginx 配置server节点下的location部分和server下root指定访问目录 server { listen 80; server_name localhost; root /usr...

weixin_43552513的博客 1023

【Unity 实用工具篇】 | Book Page Curl 快速实现翻书效果

游戏和应用开发中,真实感的交互设计能显著提升用户体验。Unity3D图书翻页效果插件为开发者提供了一种便捷方式,可在项目中实现高度拟真的书籍翻页动画。 本文介绍该插件的快速使用方法,涵盖从基础导入到自动翻页效果创建的全过程,让我们快速实现翻页效果。

努力前行,总会成为自己心中的那道光 1万+

java大文件(百M以上)的上传下载讨论

一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传; 支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。 支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验; 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包含层级结构。 支持断点续传,关闭浏览器或刷新浏

Mr_Zang666的博客 775

【项目实战】分布式日志系统 之 Exactly-once 语义:确保数据处理的精确性

在分布式系统的数据传输与处理中,是一种核心可靠性保障,其目标是确保数据“仅被处理一次”——既不重复(避免多次处理),也不遗漏(避免未处理)。与,二者共同保障数据处理的精确性。Exactly-once 语义是分布式系统中数据可靠性的高级目标,其核心通过“幂等设计”(解决重复问题)和“分布式事务”(解决原子性问题)实现。在实际应用中,常结合 At-Least-Once 语义与幂等性,或通过事务 API 与唯一 ID 去重的组合,平衡可靠性与系统性能。

奶爸的编程之路,也就一周冷个三天 166

【KingSCADA】如何建立硬件系统及相关变量

本篇主要讲解如何定义设备,如何定义变量。KingSCADA3.8的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServer应用,它是一组独立的应用程序,可以脱离KingSCADA3.8软件,它依赖于KingSCADA3.8驱动产品,通过驱动与IO设备进行通讯。采集系统由通讯链路,设备,数据块组成。链路:链路是指计算机通过什么方式(接口)与设备进行连接,链路类别:串口,以太网,GPRS,Modem,通信卡,采集卡,无链路。

做有价值的事,积累有价值的笔记! 1万+

nginx服务器实现上传下载文件

参考 Nginx文件服务器 使用nginx搭建文件服务器 使用nginx作为文件服务器 nginx搭文件服务器 利用nginx搭建小型的文件服务器 nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。 nginx上传模块nginx_upload_module使用 加上上传模块的nginx编译和配置 n...

黑客三遍猪 2万+

vivo X200 Ultra前瞻系列(1):重塑影像旗舰标准

在色彩风格化、视频专业度上实现了安卓阵营的突破性进步。其2亿像素长焦、双LYT-818传感器及5轴防抖技术,对追求个性化创作的用户具有强吸引力。若真机表现能兑现硬件承诺,X200 Ultra有望重新定义手机影像的“专业”标准。然而,其厚重设计、价格门槛及生态适配问题,仍需市场检验。vivo X200 Ultra作为2025年上半年影像旗舰,以“全焦段夜视仪+电影级视频”为核心卖点,主打。,对标小米15 Ultra、OPPO Find X8 Ultra等竞品。,顶配版(24GB+2TB)逼近万元。

专注:太空算力、AI infra、异构调度、大模型成本工程 963

搭建nginx文件服务器(保姆级)

我们在工作过程中,有许多大的镜像或者安装包等,占用了我们本地电脑大量空间,并且下载速度慢,搭建一个。2、模拟其他服务器来文件服务器wget下载文件(喔的天,93M/S)1、效果图(浏览器访问http://+ip)1、下载nginx安装包并安装(编译安装),可以高效的储存文件,以及wget下载。2、修改nginx.cof配置文件。

weixin_49511376的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Nginx文件上传下载实现与文件管理

1.Nginx 上传 Nginx 依赖包下载     # wget http://www.nginx.org/download/nginx-1.2.2.tar.gzinx     # wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz     # wget http://nchc.d...

weixin_30734435的博客 832

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Nginx实现文件的上传和下载

文件的上传只要保证特殊的地址先到达Nginx,然后通过Nginx指定至指定的服务器即可,目前配置是本机。文件的下载的做法就是把本机的当前目录下面的文件给返回回去。 server { listen 80; server_name www.zj***.com zj***.com; #charset koi8-r; #access_log l...

weixin_30725467的博客 1459

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

spring boot+ nginx 搭建简单的文件服务器,实现上传下载

项目中用的文件服务的上传和下载访问的问题,由于疫情没有办法接入大的分布式是文件服务器中,自己就动手搭建一个文件服务器来nginx+spring boot 。 实现的主要思路如下: spring boot 主要实现文件的上传功能,上传到指定的目录下,这里所说的是Linux。 nginx 通过配置实现文件的浏览和下载功能。 1. sping boot 实现文件的上传代码实现如下单个文件和多个文...

houxian1103的博客 3423

搭建Nginx图片or视频服务器

搭建Nginx图片or服务器 使用七牛云有点麻烦,因为需要一个报备的域名,但是没得,测试域名时间有点短,恰好有个云服务器,想着把它作为图片视频服务器,亲测可以通过ip地址访问到图片和视频。 但是视频有点慢。 安装Nginx Nginx 是什么. Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。 ok,就介绍到这,想了解的自行了解。 环境 ubuntu 20.04 服务器:阿里云 2G 40G 安装 本实例采用源码安装nginx,这个配置文件比较全,采

weixin_45729594的博客 5245

Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传

Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传 注:本文参考狂神说。(原文地址) 一、Nginx下载 nginx下载官网 下载稳定版本。(还是蛮快的) 下载后解压,解压后如下: 二、启动nginx windows下 比较简单 有很多种方法启动nginx (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过 (2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可(start nginx命令也可以

qq_48033003的博客 1593

Nginx文件服务器搭建

root@localhost ~]# /usr/sbin/useradd -g www www ---添加用户 www。[root@localhost ~]# /usr/sbin/groupadd -f www ---建立用户组 www。访问http://IP即可看到nginx欢迎页,默认欢迎页面在/usr/local/nginx/html目录下。[root@localhost ~]# /etc/init.d/nginx start 启动。访问http://IP/pages。2、创建nginx启动用户。

zhangbaoqiang1的博客 3288

nginx搭建文件上传下载服务器

最近要搭建文件一个服务器, 准备使用python的web框架tornado来做。发现了这篇blog,准备使用nginx来实现文件上传和下载的功能。下面把实现步骤记录下来,中间有很多坑。 系统环境:centos6.8 1、下载nginx wget  http://nginx.org/download/nginx-1.10.2.tar.gz 2、下载nginx upload module

厚积薄发的博客 2万+
上一篇: Nginx 如何 开启gzip 来提高页面加载速度
下一篇: nginx搭建文件服务器获取上传进度
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值