在linux服务器上使用nginx搭建文件服务器(图片等文件)

一、为什么要用nginx搭建文件服务器

        现在很多java项目都涉及到文件的上传及显示问题,以博客项目为例,就涉及到较多的图片上传及显示,据博主了解目前的博客项目一般都有几种方式来存放图片:

  1. 使用阿里云oss、腾讯云cos或者七牛云存储来存放博客项目的图片等文件。
  2. 使用有道云笔记或上传QQ空间等外链形式存放图片,博客直接引入有道云等的链接来显示图片。
  3. 使用本地服务器上搭建的文件服务器来存放图片等文件。

        第一种方法中阿里云oss,和腾讯云oss存储空间收费,七牛云实名认真后会有10G的免费空间及10G的免费cdn流量,图片存在各种云存储上较为方便,缺点是但安全性不强,因为阿里云oss和腾讯云cos均是采取存储空间收费,外网访问流量另外收费的模式,这样当网站访问量不大的时候并不会有什么问题,但当网站受到攻击后,一晚上可能产生巨量的外网访问流量,会带来不必要的损失。第二种方法存在个各种云笔记或者上传QQ空间然后复制图片链接来使用图片虽然较为安全,但不是很方便。第三种在本地搭建文件服务器的方法则相对安全,并且方便,缺点就是受限于服务器的硬盘大小,如果数据量巨大的话还是不推荐该方式。综上所述,对于博客等相对轻量级的数据量比较少的项目来说,使用第三种方法是再好不过的了。

二、下载安装nginx

        在服务器上下载安装nginx的方法有很多,百度相应的教程极多,这里不再赘述,推荐安装解压版版的或者yum insatll 的方式来安装nginx,因为博主自己是使用docker安装的nginx,在配置文件服务器的过程中遇到了很多问题,最后发现实因为配置的文件服务器路径没有在docker容器中映射相应的目录到宿主机目录所导致的,所以不推荐docker安装nginx。

三、配置文件服务器

        找到nginx的配置文件,一般都是nginx.conf这个文件,在其中添加server,代码如下:

    server {
        listen       80;
        server_name  file.sepet.top;

        location /{
        #代理的一些设置,包括socket的最后两行

            root   /home/file;
            #autoindex on;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

        这段server中的server_name中的域名需要先解析到该服务器ip才能使该配置生效, location/代表访问的后缀为'/',如果配置location /images/{.....}则代表访问后缀为/iamges/,root后面的代表文件服务器的目录,也就是文件存放的目录,存放到该目录下的文件都能访问到,autoindex on代表打开目录浏览功能,此处不需要打开目录浏览,其余的配置则为基本配置。

四、测试效果

        将修改好的nginx配置文件替换掉原来的配置文件后重启你的nginx,然后在服务器的 /home/file目录下放入以下文件:
file

        接着在浏览器端输入以下url,效果如下:
file
file
        可以看到,放入/home/file/目录下的fan.jpg和1.txt文件已经可以通过url访问到了,至此你就配置好你的nginx文件服务器了,如果你想开放目录浏览,可以设置autoindex on;然后输入url不要任何后缀,便可以访问目录浏览界面,如下:
file

正文到此结束
本文目录