Nginx系列之 一 搭建文件共享服务器

news2024/9/25 9:35:07

目录

一、概述

二、实现

三、Nginx的限速

3.1 并发限制

3.2 速度限制


Nginx系列之 一 入门安装_开着拖拉机回家的博客-CSDN博客

Nginx系列之 一 反向代理_开着拖拉机回家的博客-CSDN博客

Nginx系列之 一 负载均衡_开着拖拉机回家的博客-CSDN博客


一、概述


Nginx一个高性能 Web服务器,可以用作反向代理,也可以实现负载平衡和 HTTP缓存。Nginx是一款免费的开源软件,根据类BSD许可证的条款发布。大部分 Web服务器通常使用 NGINX 作为负载均衡器。

需求: 项目私有化部署HDP集群和应用程序,Linux服务器不能直接上传和下载文件,同一个局域网中在windows上面安装Nginx,使用nginx搭建一个简单的文件共享服务器,使用wget进行大文件下载。


二、实现


配置Nginx

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  www.kangll.com;

        # 避免中文乱码
        charset utf-8;
         
        location / {
            alias       /opt/softs/;
            sendfile    on;
            autoindex   on;
            autoindex_exact_size  off;
            autoindex_localtime   on;
        }

    }

}

参数详解:

  • sendfile

启用sendfile()系统调用来替换read()和write()调用,减少系统上下文切换从而提高性能,当 nginx 是静态文件服务器时,能极大提高nginx的性能表现,而当 nginx 是反向代理服务器时,则没什么用了

  • autoindex on

启用目录浏览虚拟主机的配置文件

  • autoindex_exact_size off

默认为on,显示出文件的确切大小,单位是bytes。改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

  • autoindex_localtime on

默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间

通过 www.kangll.com 访问

在 其他的 Linux服务器上 下载


三、Nginx的限速


3.1 并发限制


可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module模块来实现限速的功能, 该模块主要限制下载速度。

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;
   
    limit_conn_zone $binary_remote_addr zone=aming:10m;

    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        server_name  www.kangll.com;
        limit_conn aming 10;
        
         
        location / {
            alias       /opt/softs/;
            sendfile    on;
            autoindex   on;
            autoindex_exact_size  off;
            autoindex_localtime   on;
        }

    }

}

说明:首先用limit_conn_zone定义了一个内存区块索引aming,大小为10m,它以$binary_remote_addr作为key。该配置只能在http里面配置,不支持在server里配置。

limit_conn 定义针对aming这个zone,并发连接为10个。在这需要注意一下,这个10指的是单个IP的并发最多为10个。

limit_conn 为 10 ,下载文件:

limit_conn 修改为 5 ,下载速度降下来一点

3.2 速度限制


nginx_http_limit-req_module: 该模块用来限制请求数。

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;
   
    limit_conn_zone $binary_remote_addr zone=aming:10m;

    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        server_name  www.kangll.com;
        limit_conn aming 5;
        
         
        location / {
            alias       /opt/softs/;
            sendfile    on;
            autoindex   on;
            autoindex_exact_size  off;
            autoindex_localtime   on;
            limit_rate_after 30m;
            limit_rate 1024k;
        }

    }

}

说明:limit_rate_after定义当一个文件下载到指定大小(本例中为30M)之后开始限速;

limit_rate 定义下载速度为1024k/s。

测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker--harbor私有仓库部署与管理】

目录 一、Harbor 部署1. 部署 Docker-Compose 服务2. 部署 Harbor 服务(1)下载或上传 Harbor 安装程序(2)修改harbor安装的配置文件 3. 启动 Harbor4. 查看 Harbor 启动镜像5. 创建一个新项目1、在虚拟上进行登录 Harbor2、下载镜…

QT连接Mysql数据库

文章目录: 一:准备工作 1.确保QT有Mysql驱动 2.创建数据库和表 二:连接数据库 1.目录结构 2.编辑pro文件 3.编辑.cpp文件 4.运行结果 一:准备工作 1.确保QT有Mysql驱动 这个是QT自己没有的,需要单独下载 不然就…

透过黑马程序员7月就业数据,看下半年经济复苏及数字化人才发展趋势

近日,黑马程序员深圳校区发布了一则就业数据,引得网友围观,其中,Java138期毕业当天就业率达到60.94%,平均就业薪资10148元;Java139期毕业后1个工作日就业率达到了73.13%,平均薪资10505元&#x…

关于anki的一些思考

文章目录 通常情况下选择什么模板制卡?一张填空卡片的填空数量到底要多少才合适? 通常情况下选择什么模板制卡? 通常情况是指知识是以一段文字的形式呈现,而不是这些:单词、选择题、成语等(这些都可以定制…

【机器学习】 奇异值分解 (SVD) 和主成分分析 (PCA)

一、说明 在机器学习 (ML) 中,一些最重要的线性代数概念是奇异值分解 (SVD) 和主成分分析 (PCA)。收集到所有原始数据后,我们如何发现结构?例如,通过过去 6 天…

Java后端开发 —— 记录一个spring入门案例

前言 最近荔枝在转技术栈呢,后端Java零零散散也学了半个月,在一边总结blog输出的同时一遍实操项目。最近学完JavaSE部分的重点之后荔枝来入手spring框架,说起spring其实大家耳熟能详的就想起IoC和AOP了,但在这篇文章荔枝主要还是梳…

Ubuntu22.04 安装Anaconda

文章目录 1.下载Anaconda2.安装Anaconda3.启动环境4.常用命令4.1创建虚拟环境4.2查询当前系统conda虚拟环境4.3挂载虚拟环境4.4退出虚拟环境4.5查看已安装的工具包4.6删除虚拟环境 1.下载Anaconda (1)下载地址:https://mirrors.tuna.tsinghu…

低代码开发重要工具:jvs-flow(流程引擎)审批功能配置说明

流程引擎场景介绍 流程引擎基于一组节点与执行界面,通过人机交互的形式自动地执行和协调各个任务和活动。它可以实现任务的分配、协作、路由和跟踪。通过流程引擎,组织能够实现业务流程的优化、标准化和自动化,提高工作效率和质量。 在企业…

无涯教程-jQuery - jQuery.ajax( options )方法函数

jQuery.ajax(options)方法使用HTTP请求加载远程页面。 $.ajax()返回它创建的XMLHttpRequest。在大多数情况下,您不需要该对象直接进行操作,但是如果您需要手动中止请求,则可以使用该对象。 jQuery.ajax( options ) - 语法 $.ajax( options…

Talk | 卡内基梅隆大博士生侯博涵:MLC-LLM-机器学习编译与在大语言模型上的应用

本期为TechBeat人工智能社区第516期线上Talk! 北京时间7月26日(周三)20:00, 卡内基梅隆大博士生—侯博涵的Talk已经准时在TechBeat人工智能社区开播了! 他与大家分享的主题是: “MLC-LLM-机器学习编译与在大语言模型上的应用”,与…

服务器VNC软件与服务器中Sentaurus TCAD软件相关问题汇总(持续更新中)

目录 license失效问题个人端口的VNC无法连接/系统页面失效(无最小化、关闭等)也可以用该方法重启VNC后端口发生混乱/断电后个人端口无法连接操作的步骤在Centos环境下给Sentaurus TCAD安装编辑器jeditSSH重启VNC rootCentos查看NETMASK,GATWAY,DNS licen…

基于vue3.0实现vr全景编辑器

随着社会的不断发现,现实生活中有很多时候会使用到全景现实,比如房地产行业vr看房,汽车行业vr看车之类的,全景可视化真实还原了现场的场景,真正做到沉浸式体验。 现在我们基于vue3.0版本开发出了一款沉浸式的编辑器&a…

拿捏 ---> 水仙花数+变种水仙花数

文章目录 题目描述(水仙花数)思路代码示例方法一方法二 题目描述(变种水仙花数)思路代码示例 题目描述(水仙花数) 求出0~1000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身&a…

ThinkPHP8知识详解:ThinkPHP8特性和功能介绍

ThinkPHP8 是一个开源的 PHP 框架,采用了面向对象编程和 MVC(Model-View-Controller)设计模式,提供了丰富的功能和易于使用的 API,是一个适用于 web 应用开发的高效框架。 ThinkPHP8具有许多强大的特性和功能&#xf…

k8s容器日志收集方案

背景 由于以下容器本身特性和现有日志采集工具的缺陷,开发者在收集Kubernetes分布式集群日志时常常遇到困扰: 容器本身特性: 采集目标多:容器本身的特性导致采集目标多,需要采集容器内日志、容器stdout。对于容器…

三分钟带你了解音频转文字哪个好用

在数字世界的角落里,有一项神奇的技术——音频转文字。它隐藏着巨大的力量和惊人的能力。它如同一位神奇的文字解码师,能够将听觉的旋律转化为视觉的符号,让语言的美妙之音在屏幕上跃然纸上。接下来,让我带你进入这个充满奇迹的数…

常用程序分段,编译流程

实际这些概念也要根据不同编译器有些微的区分,常用的结构模型应该就是LINUX程序分段以及GNU编译链的编译留成。 先看编译流程 程序分段: 堆存储和栈存储的区别 堆和栈的区别主要有五大点,分别是: 1、申请方式的不同。栈由系统自动分配&…

tinkerCAD案例:13.Ruler - Cm 标尺 - 厘米

tinkerCAD案例:13.Ruler - Cm 标尺 - 厘米 原文 While it’s fun to create things at any size you wish, sometimes you need to measure an exact distance. In this lesson you will learn to create an accurate ruler that measures centimeters. 虽然创建任…

六、代理模式

文章目录 一、代理模式1、代理模式的好处和缺点1.1 代理模式理解加深 一、代理模式 为什么要学习代理模式? 代理模式是Spring AOP 以及 Spring MVC 的底层!!并且还是 JAVA 的23种设计模式之一!! 代理模式的分类&#…

【TI毫米波雷达笔记】IWR6843AOP工程模板创建 cannot find file “libsleep_xwr68xx.aer4f“等解决方案

【TI毫米波雷达笔记】IWR6843AOP工程模板 cannot find file “libsleep_xwr68xx.aer4f” 解决方案 我在建立工程时 发现了一个问题 参考: blog.csdn.net/qq_16660871/article/details/126246572报错为 cannot find file "libsleep_xwr68xx.aer4f"最后检…