服务器端知识库nginx搭建文件服务器

简介: 作为一名前端开发者,使用nginx配置静态web服务器是我们经常使用的功能之一。此外对于nginx的其他功能,比如说负载均衡,反向代理之类的我们接触的比较少。但是我认为要想掌握nginx这一大利器,我们就需要去多多了解他所具备的功能,以及nginx的设计架构和原理,而如果想要快速的掌握这块,我觉得动手去使用nginx是最快的途径之一。本章记录下搭建nginx的过程。

前言


作为一名前端开发者,使用nginx配置静态web服务器是我们经常使用的功能之一。此外对于nginx的其他功能,比如说负载均衡,反向代理之类的我们接触的比较少。但是我认为要想掌握nginx这一大利器,我们就需要去多多了解他所具备的功能,以及nginx的设计架构和原理,而如果想要快速的掌握这块,我觉得动手去使用nginx是最快的途径之一。本章记录下搭建nginx的过程。

基本实现


基本功能

  • 文件目录查看
  • 点击文件目录展示下一级
  • 文件目录下文件数量显示(待定)
  • 点击文件下载功能
  • 文件信息展示(更新时间 文件类型 文件大小)
  • 文件上传功能(待定)
  • 文件目录搜索功能(待定)
  • 文件目录自定义样式(待定 fancyindex)

相关api

在开始搭建文件服务器之前我们先要了解下实现这块的相关api,在nginx模块中有如下 ngx_http_autoindex_module,模块处理以斜杠('/')结尾的请求,并生成目录列表。

  • autoindex :启用或禁用目录列表输出。
  • autoindex_exact_size:默认为on,显示出文件的确切大小,单位是bytes。改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
  • autoindex_format:html | xml | json | jsonp;
  • autoindex_localtime:默认为off,显示的文件时间为GMT时间。 改为on后,显示的文件时间为文件的服务器时间

实现步骤

  • 服务器(百度云ubuntu)
  • 安装nginx
apt install nginx
  • 配置nginx
http{
    server{
        location /test{
            alias /var/www; //目录路径
            autoindex on;
        }
    }
}
  • 测试/启用nginx
nginx -t //返回ok则说名语法没问题
nginx -s start
  • 打开浏览器页面

网络异常,图片无法展示
|
这个是nginx自带的文件处理,样式不够美观,在真实项目中我们常常使用Nginx-Fancyindex-Theme来美化目录样式。

facyindex的配置使用

当我们不满足于nginx自带的文件服务器样式时候,我们可以使用facyindex来重新格式化其目录样式,具体操作如下

环境安装(必须在linux机器上,window没试过)

  • 下载nginx和fancyindex源代码(centos)
yum install https://extras.getpagespeed.com/redhat/7/x86_64/RPMS/nginx-module-fancyindex-1.12.0.0.4.1-1.el7.gps.x86_64.rpm
  • 安装fancyindex
yum install nginx-module-fancyindex
  • 加载fancyindex
load_module "modules/ngx_http_fancyindex_module.so";

//如果系统是ubuntu那比较简单

  • 安装fancyindex
sudo apt-get install nginx-extras

配置fancyindex

  • 基础配置
location /teset {
  alias /var/www; //目录路径
  fancyindex on;              # Enable fancy indexes.
  fancyindex_exact_size off;  # Output human-readable file sizes.
}
  • 其他fancyindex配置
//允许在生成的清单中插入指向CSS样式表的链接。该链接将插入到内置CSS规则之后,因此您可以覆盖默认样式。
fancyindex_css_href
//指定应该将哪个文件插入到目录清单的底部。如果设置为空字符串,则发送模块提供的默认页脚。
fancyindex_footer
//指定应该将哪个文件插入到目录清单头部。如果设置为空字符串,则发送模块提供的默认页眉。
fancyindex_header
//指定将不会在生成的清单中显示的文件名列表
fancyindex_ignore
//Enables showing file times as local time. Default is “off” (GMT time).
fancyindex_localtime

启动nginx

nginx -t
nginx -s reload

至此我们可以实现一个比默认格式更美观的文件服务器,如下图:

网络异常,图片无法展示
|
这样肯定还不够的,为此我们可以引入个开源插件fancyindex-theme,这个提供了两种主题light和dark我选择了light主题进行搭建

引入fancyindex-theme

注:fancyindex-theme是基于fancyindex的插件,提供了更加优美的文件展示页面。以及一些检索操作。

  • 准备好前两步的环境
  • clone fancyindex-theme仓库
git clone https://github.com/Naereen/Nginx-Fancyindex-Theme
  • 将light主题文件放到对应的文件夹下(及在配置文件中alias定义的路径)
cp Nginx-Fancyindex-Theme-light /var/www/Nginx-Fancyindex-Theme-light
  • 修改nginx配置文件
{
       fancyindex_localtime on;
        fancyindex_header "/Nginx-Fancyindex-Theme-light/header.html";
        fancyindex_footer "/Nginx-Fancyindex-Theme-light/footer.html";
}

注:如果我们在nginx中的配置location 为/test,那我们在引入fancyindex_header和fancyindex_footer是就要如下写

{
     fancyindex_header "/test/Nginx-Fancyindex-Theme-light/header.html";
        fancyindex_footer "/test/Nginx-Fancyindex-Theme-light/footer.html";
}

另外在/Nginx-Fancyindex-Theme-light/footer.html和fancyindex_header "/Nginx-Fancyindex-Theme-light/header.html"文件中需要在引入外部文件的地方都加上前缀test

<link rel="stylesheet" href="/test/Nginx-Fancyindex-Theme/styles.css">
<script type="text/javascript" src="/test/Nginx-Fancyindex-Theme/jquery.min.js"></script>

这个是因为nginx路由匹配规则导致。

  • 重新启动后刷新页面如下图:
    网络异常,图片无法展示
    |

总结


本节主要是了解下nginx在搭建静态文件服务器中的使用,虽然默认的nginx文件模块已经能满足我们功能需求,但作为一名前端工程是追求友好交互是必不可少的品质之一。另外,在这个大前端时代,对于前端开发来说掌握nginx那我们就相当于在前端领域多了另一种可能。

命令总结:

  • 1.autoindex打开文件服务器功能
  • 2.alias设置文件服务器的路径
  • 3.fancyindex文件展示样式优化


相关文章
|
20天前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
22天前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
39 3
|
20天前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
23天前
|
存储 负载均衡 应用服务中间件
FastDFS+Nginx:轻松搭建本地文件服务器
【8月更文挑战第19天】在现今互联网快速发展的时代,文件服务器作为支撑各种在线服务的重要基础设施,其稳定性和性能显得尤为关键。FastDFS作为一款开源的轻量级分布式文件系统,凭借其高效的文件管理功能,特别适合用于构建相册网站、视频网站等以文件为载体的在线服务。本文将详细介绍如何利用FastDFS和Nginx快速搭建一个本地文件服务器,为您的工作和学习提供技术支持。
58 0
|
27天前
|
关系型数据库 Linux 应用服务中间件
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
14 0
|
弹性计算 安全 应用服务中间件
ECS动手搭建Nginx
在ECS的centos7上搭建一个Nginx
1945 6
ECS动手搭建Nginx
|
27天前
|
机器学习/深度学习 编解码 人工智能
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
随着人工智能、大数据和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况,目前计算型gn6v实例云服务器一周价格为2138.27元/1周起,月付价格为3830.00元/1个月起;计算型gn7i实例云服务器一周价格为1793.30元/1周起,月付价格为3213.99元/1个月起;计算型 gn6i实例云服务器一周价格为942.11元/1周起,月付价格为1694.00元/1个月起。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,以供参考。
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
|
1天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
9天前
|
存储 弹性计算 运维
阿里云日常运维-购买服务器
这篇文章是关于如何在阿里云购买和配置云服务器ECS的教程。
39 6
阿里云日常运维-购买服务器
|
2天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
26 10