使用nginx搭建我的文件服务器

使用nginx搭建我的文件服务器

薛定谔的汪

前言

最近又入手了一台腾讯云服务器,时长5年半(卡bug来的0.0),系统选择了CentOS7.3,想在其上搭建一个文件服务器,一是来存储自己的一些资料和文件,二还可以把相关学习资料分享给大家,三就是回顾学习下nginx的相关知识点。

开始安装

1
2
yum -y update
yum -y install nginx

安装完后查看niginx版本、安装目录和配置目录

1
2
nginx -v
nginx version: nginx/1.12.2
1
2
whereis nginx
/usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz

配置

可以看到nginx的配置文件位于/etc/nginx/nginx.conf 使用cat命令查看此文件看到:

1
include /etc/nginx/default.d/*.conf;

这表示此文件的配置内容也包含default.d目录下所有的conf文件的配置内容,我们可以把自己的配置信息放置此目录下。

到此default.d目录下创建my-files.conf文件,并使用vim对其编辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {    
listen 99;
charset utf-8;
server_name localhost;
location / {
root /data/my-files/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime off;
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
add_header Content-Disposition : 'attachment';
}
#allow 192.168.100.0/24; #允许192.168.100.2到192.168.100.254且子网掩码是255.255.255.0网段的ip访问
#allow 192.168.200.0/24; #原理同上
#deny all; 其余的拒绝访问
}
...
}

相关配置介绍:

listen:nginx监听的端口
charset:指定字符集编码,防止浏览器显示乱码
server_name:服务器名
root:文件服务器目录
autoindex:目录索引 开启 不开启会报403
autoindex_exact_size:显示文件大小
autoindex_localtime:显示时间
if后的代码是通过正则表达式获得文件后缀名,如果属于小括号里的文件名就给响应信息添加响应头Content-Disposition : ‘attachment’; 表示点击后不是浏览器打开而是直接下载,如果需要在线预览功能可以去掉这段代码。
allow和deny在公司里用的多,可以限制ip访问,并且allow可以有多个。由于我这个资源是开放式的,所以给注释掉了。

启动

修改完后启动nginx,如图所示:

问题:

当一切配置好,启动nginx服务器,分别使用谷歌浏览器和火狐浏览器打开页面,点击同一个txt或者pdf格式的文件,发现一个奇怪的现象:在火狐浏览器点击后是正常下载文件,但是在谷歌浏览器上点击后是预览文件!!!!

后来通过开发者工具查看响应头发现,火狐浏览器响应头如下:

谷歌浏览器响应头如下:

原因是多了个冒号 “:”,不清楚为什么谷歌浏览器解析这个响应头会这样,所以nginx.conf配置,改为:

add_header Content-Disposition 'attachment'; 即可。

命令:

最后介绍几个在CentOS7服务器中nginx最常用三个命令:

nginx启动:nginx
nginx重新加载:nginx -s reload
nginx停止: nginx -s stop

在CentOS7中,nginx已经被系统加入到系统服务管理器指令中作为系统服务,因此还可以这样:

systemctl start nginx
systemctl restart nginx
systemctl stop nginx

  • Title: 使用nginx搭建我的文件服务器
  • Author: 薛定谔的汪
  • Created at : 2018-03-08 16:30:02
  • Updated at : 2023-11-17 19:37:37
  • Link: https://www.zhengyk.cn/2018/03/08/server/Nginx-File-Server/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
使用nginx搭建我的文件服务器